Advertisement
vilgelmbb

CreateTaskFromDocument request 17178

Jan 28th, 2015
276
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.93 KB | None | 0 0
  1.     protected void CreateTaskFromDocument(KindsCardKind kind, List<StaffEmployee> currentPerformers)
  2.         {
  3.             Try(delegate
  4.             {
  5.                 if (ObjectStateService.HasChangedObjects())
  6.                 {
  7.                     DialogResult dialogResult =
  8.                         Messages.QuestionMessage(
  9.                             "Для запуска альтернативного задания необходимо сохранить документ. Сохранить сейчас?",
  10.                             true);
  11.                     if (dialogResult != DialogResult.Yes)
  12.                     {
  13.                         return;
  14.                     }
  15.                     if (!SaveCard())
  16.                     {
  17.                         return;
  18.                     }
  19.                 }
  20.  
  21.                 Document document = (Document) BaseObject;
  22.                 Task task = TaskService.CreateTask(kind);
  23.                 if (task != null)
  24.                 {
  25.                     var parameterCollection = new DocsVision.Platform.CardHost.ParameterCollection();
  26.                     parameterCollection["SubType"] =
  27.                         MyContext.GetObjectRef<KindsCardKind>(task.SystemInfo.CardKind).Id;
  28.                     Guid id = MyContext.GetObjectRef<Task>(task).Id;
  29.                     MyContext.GetService<IAccessCheckingService>().ResetRolesCache();
  30.                     MyContext.GetService<IServerExtensionProxyService>().ResetRolesCache(id);
  31.                     if (document.MainInfo.Tasks == null)
  32.                     {
  33.                         document.MainInfo.Tasks = TaskListService.CreateTaskList();
  34.                     }
  35.  
  36.                     try
  37.                     {
  38.                         string tgName = string.Empty;
  39.                         var docType = BaseObject.SystemInfo.CardKind.Name;
  40.                         tgName = docType;
  41.                         var regNumber = BaseObject.Numbers.Count > 0
  42.                             ? (BaseObject.Numbers.Count > 1
  43.                                 ? BaseObject.Numbers[1].Number
  44.                                 : BaseObject.Numbers[0].Number)
  45.                             : string.Empty;
  46.                         if (regNumber != string.Empty) tgName += " № " + regNumber;
  47.                         var row = BaseObject.GetSection(CardDocument.MainInfo.ID)
  48.                             .Cast<BaseCardSectionRow>()
  49.                             .ToList()
  50.                             .FirstOrDefault();
  51.                         if (row != null)
  52.                         {
  53.                             var objregDate = row.GetValue("RegDate");
  54.                             var regDate = objregDate != null ? DateTime.Parse(objregDate.ToString()) : DateTime.MinValue;
  55.                             if (objregDate != null)
  56.                                 tgName += " от " + DateTime.Parse(objregDate.ToString()).ToShortDateString();
  57.                         }
  58.                         task.MainInfo.Name = tgName;
  59.  
  60.                         //adding performers
  61.                         foreach (var currentPerformer in currentPerformers)
  62.                         {
  63.                             TaskService.AddSelectedPerformer(task.MainInfo, currentPerformer);
  64.                         }
  65.  
  66.                         if (task.MainInfo.ReferenceList == null)
  67.                         {
  68.                             task.MainInfo.ReferenceList = this.ReferenceListService.CreateReferenceList();
  69.                         }
  70.                         LinksLinkType @object =
  71.                             this.MyContext.GetObject<LinksLinkType>(HelpDictionary.LinkTypes.MainDocument);
  72.                         this.ReferenceListService.CreateReference(task.MainInfo.ReferenceList, @object, BaseObject,
  73.                             @object.DisplayString, false);
  74.  
  75.                         MyContext.SaveObject<ReferenceList>(task.MainInfo.ReferenceList);
  76.                         MyContext.SaveObject(task);
  77.                     }
  78.                     catch
  79.                     {
  80.                     }
  81.  
  82.  
  83.  
  84.  
  85.                     if (CardControl.CardHost.ShowCardModal(id, Guid.Empty, ActivateMode.Edit, ActivateFlags.New,
  86.                         parameterCollection))
  87.                     {
  88.                         MyContext.RefreshObject<Task>(ref task);
  89.                         //if (document.MainInfo.Tasks == null)
  90.                         //{
  91.                         //    document.MainInfo.Tasks = this.TaskListService.CreateTaskList();
  92.                         //    this.MyContext.SaveObject<Document>(document);
  93.                         //}
  94.                         TaskListService.AddTask(document.MainInfo.Tasks, task, BaseObject);
  95.                        
  96.                         //if (task.MainInfo.ReferenceList == null)
  97.                         //{
  98.                         //    task.MainInfo.ReferenceList = this.ReferenceListService.CreateReferenceList();
  99.                         //}
  100.                         //LinksLinkType @object =
  101.                         //    this.MyContext.GetObject<LinksLinkType>(HelpDictionary.LinkTypes.MainDocument);
  102.                         //this.ReferenceListService.CreateReference(task.MainInfo.ReferenceList, @object, BaseObject,
  103.                         //    @object.DisplayString, false);
  104.                         MyContext.SaveObject<TaskList>(document.MainInfo.Tasks);
  105.                         MyContext.SaveObject<Document>(document);
  106.                         //MyContext.SaveObject<ReferenceList>(task.MainInfo.ReferenceList);
  107.                         UiService.ShowMessage("Задание успешно создано");
  108.                     }
  109.                     else
  110.                     {
  111.                         if (Session.CardManager.GetCardState(MyContext.GetObjectRef(task).Id) == DocsVision.Platform.ObjectManager.ObjectState.Existing)
  112.                             MyContext.DeleteObject(task);
  113.                     }
  114.                 }
  115.  
  116.             });
  117.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement