Exemplo n.º 1
0
        /// <summary>
        /// Получить список вариантов для выполнения задания.
        /// </summary>
        /// <param name="assignment">Задание.</param>
        /// <returns>Список вариантов выполнения задания.</returns>
        private List <Structures.Module.AllowResultCodes> GetResultVariants(Sungero.Workflow.IAssignmentBase assignment)
        {
            // Ссылки на выполнения задания.
            var results = new List <Structures.Module.AllowResultCodes>();

            var processAssignmentType = GetChatBotProcessAssignmentType(assignment);

            if (processAssignmentType != null)
            {
                // Для простых заданий, ссылка генерируется по другому.
                if (Sungero.Workflow.SimpleAssignments.Is(assignment))
                {
                    var simpleAssignment = Sungero.Workflow.SimpleAssignments.As(assignment);
                    var code             = new Structures.Module.AllowResultCodes();
                    code.ResultCode   = "Complete";
                    code.ResultLocale = simpleAssignment.Info.Actions.Complete.LocalizedName;
                    results.Add(code);
                }
                else
                {
                    Sungero.Metadata.EntityMetadata meta = Sungero.Domain.Shared.TypeExtension.GetEntityMetadata(assignment);
                    foreach (var res in processAssignmentType.AllowResults)
                    {
                        var code = new Structures.Module.AllowResultCodes();
                        code.ResultCode   = res.Result;
                        code.ResultLocale = Sungero.Domain.Shared.ResourceExtensions.GetLocalizedName(meta.Actions.Single(a => a.Name == res.Result));
                        results.Add(code);
                    }
                }
            }
            var remainedLength = 5 - results.Count;

            while (remainedLength > 0)
            {
                remainedLength--;
                var code = new Structures.Module.AllowResultCodes();
                code.ResultCode   = string.Empty;
                code.ResultLocale = string.Empty;
                results.Add(code);
            }
            return(results);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Получение всех вложений к заданию в виде массива.
        /// </summary>
        /// <param name="assignment">Задание.</param>
        public virtual Sungero.Content.IElectronicDocument[] GetAttachements(Sungero.Workflow.IAssignmentBase assignment)
        {
            var documentsList = new List <Sungero.Content.IElectronicDocument> {
            };

            foreach (var doc in assignment.AllAttachments)
            {
                if (Sungero.Content.ElectronicDocuments.Is(doc))
                {
                    documentsList.Add(Sungero.Content.ElectronicDocuments.As(doc));
                    Logger.DebugFormat("Attachement: {0}", doc.Id);
                }
            }
            var remainedLength = 5 - documentsList.Count;

            while (remainedLength > 0)
            {
                remainedLength--;
                documentsList.Add(Sungero.Content.ElectronicDocuments.Null);
            }
            var list = documentsList.ToArray();

            return(documentsList.ToArray());
        }
Exemplo n.º 3
0
        /// <summary>
        /// Получить тип и текстовые данные для выполняемого задания.
        /// </summary>
        /// <param name="assignment">Задание.</param>
        /// <returns>Правило выполнения задания.</returns>
        public virtual Structures.Module.ChatBotProcessAssignmentType GetChatBotProcessAssignmentType(Sungero.Workflow.IAssignmentBase assignment)
        {
            var typeName       = assignment.Info.Name;
            var assignmentText = Resources.AssignmentTextFormat(assignment.Subject, assignment.Author.Name, assignment.Deadline.HasValue ? assignment.Deadline.Value.ToString() : " - ", assignment.Task.ActiveText);

            // Простое задание.
            if (typeName == Constants.Module.SimpleAssignmentName)
            {
                var resultItems = new List <Structures.Module.AllowResultData>()
                {
                    Structures.Module.AllowResultData.Create("Complete", Resources.SimpleAssignmentCompleteText)
                };
                return(Structures.Module.ChatBotProcessAssignmentType.Create(Constants.Module.SimpleAssignmentName, assignmentText, resultItems));
            }

            // Задание на ознакомление с документом.
            if (typeName == Constants.Module.AcquaintanceAssignmentName)
            {
                var resultItems = new List <Structures.Module.AllowResultData>()
                {
                    Structures.Module.AllowResultData.Create(Sungero.RecordManagement.AcquaintanceAssignment.Result.Acquainted.Value, Resources.AcquaintanceAssignmentAcquaintanedText)
                };
                return(Structures.Module.ChatBotProcessAssignmentType.Create(Constants.Module.AcquaintanceAssignmentName, assignmentText, resultItems));
            }
        }