Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- protected void CreateTaskFromDocument(KindsCardKind kind, List<StaffEmployee> currentPerformers)
- {
- Try(delegate
- {
- if (ObjectStateService.HasChangedObjects())
- {
- DialogResult dialogResult =
- Messages.QuestionMessage(
- "Для запуска альтернативного задания необходимо сохранить документ. Сохранить сейчас?",
- true);
- if (dialogResult != DialogResult.Yes)
- {
- return;
- }
- if (!SaveCard())
- {
- return;
- }
- }
- Document document = (Document) BaseObject;
- Task task = TaskService.CreateTask(kind);
- if (task != null)
- {
- var parameterCollection = new DocsVision.Platform.CardHost.ParameterCollection();
- parameterCollection["SubType"] =
- MyContext.GetObjectRef<KindsCardKind>(task.SystemInfo.CardKind).Id;
- Guid id = MyContext.GetObjectRef<Task>(task).Id;
- MyContext.GetService<IAccessCheckingService>().ResetRolesCache();
- MyContext.GetService<IServerExtensionProxyService>().ResetRolesCache(id);
- if (document.MainInfo.Tasks == null)
- {
- document.MainInfo.Tasks = TaskListService.CreateTaskList();
- }
- try
- {
- string tgName = string.Empty;
- var docType = BaseObject.SystemInfo.CardKind.Name;
- tgName = docType;
- var regNumber = BaseObject.Numbers.Count > 0
- ? (BaseObject.Numbers.Count > 1
- ? BaseObject.Numbers[1].Number
- : BaseObject.Numbers[0].Number)
- : string.Empty;
- if (regNumber != string.Empty) tgName += " № " + regNumber;
- var row = BaseObject.GetSection(CardDocument.MainInfo.ID)
- .Cast<BaseCardSectionRow>()
- .ToList()
- .FirstOrDefault();
- if (row != null)
- {
- var objregDate = row.GetValue("RegDate");
- var regDate = objregDate != null ? DateTime.Parse(objregDate.ToString()) : DateTime.MinValue;
- if (objregDate != null)
- tgName += " от " + DateTime.Parse(objregDate.ToString()).ToShortDateString();
- }
- task.MainInfo.Name = tgName;
- //adding performers
- foreach (var currentPerformer in currentPerformers)
- {
- TaskService.AddSelectedPerformer(task.MainInfo, currentPerformer);
- }
- if (task.MainInfo.ReferenceList == null)
- {
- task.MainInfo.ReferenceList = this.ReferenceListService.CreateReferenceList();
- }
- LinksLinkType @object =
- this.MyContext.GetObject<LinksLinkType>(HelpDictionary.LinkTypes.MainDocument);
- this.ReferenceListService.CreateReference(task.MainInfo.ReferenceList, @object, BaseObject,
- @object.DisplayString, false);
- MyContext.SaveObject<ReferenceList>(task.MainInfo.ReferenceList);
- MyContext.SaveObject(task);
- }
- catch
- {
- }
- if (CardControl.CardHost.ShowCardModal(id, Guid.Empty, ActivateMode.Edit, ActivateFlags.New,
- parameterCollection))
- {
- MyContext.RefreshObject<Task>(ref task);
- //if (document.MainInfo.Tasks == null)
- //{
- // document.MainInfo.Tasks = this.TaskListService.CreateTaskList();
- // this.MyContext.SaveObject<Document>(document);
- //}
- TaskListService.AddTask(document.MainInfo.Tasks, task, BaseObject);
- //if (task.MainInfo.ReferenceList == null)
- //{
- // task.MainInfo.ReferenceList = this.ReferenceListService.CreateReferenceList();
- //}
- //LinksLinkType @object =
- // this.MyContext.GetObject<LinksLinkType>(HelpDictionary.LinkTypes.MainDocument);
- //this.ReferenceListService.CreateReference(task.MainInfo.ReferenceList, @object, BaseObject,
- // @object.DisplayString, false);
- MyContext.SaveObject<TaskList>(document.MainInfo.Tasks);
- MyContext.SaveObject<Document>(document);
- //MyContext.SaveObject<ReferenceList>(task.MainInfo.ReferenceList);
- UiService.ShowMessage("Задание успешно создано");
- }
- else
- {
- if (Session.CardManager.GetCardState(MyContext.GetObjectRef(task).Id) == DocsVision.Platform.ObjectManager.ObjectState.Existing)
- MyContext.DeleteObject(task);
- }
- }
- });
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement