Forum

Пожалуйста or Регистрация для создания сообщений и тем.

Помогите правильно прочитать код и разобраться с кодом C#

Есть функция FillName для формирование имени документа.
базовая функция кода:

public virtual void FillName() 
{
   _obj.Name = _obj.DocumentKind + " " + _obj.Id.ToString();
}

Затем есть переопределенная функция которая наследует от базового FillName() для нового типа документа.

Спойлер

public override void FillName()
    {
      var documentKind = _obj.DocumentKind;
      
      if (documentKind != null && !documentKind.GenerateDocumentName.Value && _obj.Name == Docflow.Resources.DocumentNameAutotext)
        _obj.Name = string.Empty;
      
      if (documentKind == null || !documentKind.GenerateDocumentName.Value)
        return;

      var name = string.Empty;
      
      /* Имя в формате:
        <Вид документа> №<номер> от <дата> для <Кому выдана> "<содержание>".
       */
      using (TenantInfo.Culture.SwitchTo())
      {
        if (!string.IsNullOrWhiteSpace(_obj.RegistrationNumber))
          name += OfficialDocuments.Resources.Number + _obj.RegistrationNumber;
        
        if (_obj.RegistrationDate != null)
          name += OfficialDocuments.Resources.DateFrom + _obj.RegistrationDate.Value.ToString("d");
        
        if (_obj.IssuedTo != null)
          name += PowerOfAttorneys.Resources.DocumentnameFor + Company.PublicFunctions.Employee.GetShortName(_obj.IssuedTo, DeclensionCase.Genitive, true);
        
        if (!string.IsNullOrWhiteSpace(_obj.Subject))
          name += " \"" + _obj.Subject + "\"";
      }

      if (string.IsNullOrWhiteSpace(name))
        name = Docflow.Resources.DocumentNameAutotext;
      else if (documentKind != null)
        name = documentKind.ShortName + name;
      name = Functions.Module.TrimSpecialSymbols(name);   
      _obj.Name = Functions.OfficialDocument.AddClosingQuote(name, _obj);  
    }


Задача
изменить формат формирования имени документа на следующий:
Заявка №<номер> от <дата> <Вид документа> для <Кому выдана> "<содержание>"

фраза "Заявка" я добавил как ресурс к сущности - PowerOfAttorneys.Resources.Request.

"Кому выдана" в этом коде - _obj.IssuedTo
"№" - ресурс OfficialDocuments.Resources.Number
"для" - ресурс PowerOfAttorneys.Resources.DocumentnameFor

Прошу не банить, курс Хачатура по C# изучаю. Благодаря его курсу.. у меня идут продвижения по чтение кода C#.. но здесь не получается разобраться(

Привет, всё просто:

Спойлер

public override void FillName()
    {
      var documentKind = _obj.DocumentKind;
      
      if (documentKind != null && !documentKind.GenerateDocumentName.Value && _obj.Name == Docflow.Resources.DocumentNameAutotext)
        _obj.Name = string.Empty;
      
      if (documentKind == null || !documentKind.GenerateDocumentName.Value)
        return;

      var name = string.Empty;
      
      /* Имя в формате:
        <Вид документа> №<номер> от <дата> для <Кому выдана> "<содержание>".
       */
      using (TenantInfo.Culture.SwitchTo())
      {
        if (!string.IsNullOrWhiteSpace(_obj.RegistrationNumber))
          name += OfficialDocuments.Resources.Number + _obj.RegistrationNumber;
        
        if (_obj.RegistrationDate != null)
          name += OfficialDocuments.Resources.DateFrom + _obj.RegistrationDate.Value.ToString("d");
      
        name += documentKind.ShortName; //magic
        
        if (_obj.IssuedTo != null)
          name += PowerOfAttorneys.Resources.DocumentnameFor + Company.PublicFunctions.Employee.GetShortName(_obj.IssuedTo, DeclensionCase.Genitive, true);
        
        if (!string.IsNullOrWhiteSpace(_obj.Subject))
          name += " \"" + _obj.Subject + "\"";
      }

      if (string.IsNullOrWhiteSpace(name))
        name = Docflow.Resources.DocumentNameAutotext;
      /*else if (documentKind != null)
        name = documentKind.ShortName + name;*/
      name = Functions.Module.TrimSpecialSymbols(name);   
      _obj.Name = Functions.OfficialDocument.AddClosingQuote(name, _obj);  
    }

Добрый 🖐
Ребята, убирайте код под спойлер.


Как оформлять свои темы и комментарии | Как делать крутые скриншоты