Exemplo n.º 1
0
        private static void SetFileAssignmentAttributes(XElement settingsGroup, FileAssignmentInfo fileAssignmentInfo)
        {
            foreach (var setting in settingsGroup.Elements())
            {
                if (string.Compare(setting.Name.LocalName, "Setting", StringComparison.InvariantCultureIgnoreCase) == 0)
                {
                    if (!setting.HasAttributes)
                    {
                        continue;
                    }

                    foreach (var attribute in setting.Attributes())
                    {
                        if (string.Compare(attribute.Name.LocalName, "Id", StringComparison.InvariantCultureIgnoreCase) == 0 &&
                            string.Compare(attribute.Value, "AssignedAt", StringComparison.InvariantCultureIgnoreCase) == 0)
                        {
                            DateTime.TryParse(setting.Value, CultureInfo.CreateSpecificCulture("en-US"), DateTimeStyles.AssumeUniversal, out var assignedAt);
                            fileAssignmentInfo.AssignedAt = assignedAt;
                        }

                        if (string.Compare(attribute.Name.LocalName, "Id", StringComparison.InvariantCultureIgnoreCase) == 0 &&
                            string.Compare(attribute.Value, "DueDate", StringComparison.InvariantCultureIgnoreCase) == 0)
                        {
                            DateTime.TryParse(setting.Value, CultureInfo.CreateSpecificCulture("en-US"), DateTimeStyles.AssumeUniversal, out var dueDate);
                            fileAssignmentInfo.DueDate = dueDate;
                        }

                        if (string.Compare(attribute.Name.LocalName, "Id", StringComparison.InvariantCultureIgnoreCase) == 0 &&
                            string.Compare(attribute.Value, "AssignedBy", StringComparison.InvariantCultureIgnoreCase) == 0)
                        {
                            fileAssignmentInfo.AssignedBy = setting.Value;
                        }

                        if (string.Compare(attribute.Name.LocalName, "Id", StringComparison.InvariantCultureIgnoreCase) == 0 &&
                            string.Compare(attribute.Value, "IsCurrentAssignment", StringComparison.InvariantCultureIgnoreCase) == 0)
                        {
                            bool.TryParse(setting.Value, out var isCurrentAssignment);
                            fileAssignmentInfo.IsCurrentAssignment = isCurrentAssignment;
                        }

                        if (string.Compare(attribute.Name.LocalName, "Id", StringComparison.InvariantCultureIgnoreCase) == 0 &&
                            string.Compare(attribute.Value, "Assignees", StringComparison.InvariantCultureIgnoreCase) == 0)
                        {
                            var regexAssigned = new Regex(@"<string>(?<assigned>.*?)<\/string>", RegexOptions.IgnoreCase | RegexOptions.Singleline);
                            var matches       = regexAssigned.Matches(setting.ToString());
                            foreach (Match match in matches)
                            {
                                var assigned = match.Groups["assigned"].Value.Trim();
                                if (!fileAssignmentInfo.Assignees.Contains(assigned))
                                {
                                    fileAssignmentInfo.Assignees.Add(assigned);
                                }
                            }
                        }
                    }
                }
            }
        }
Exemplo n.º 2
0
        private static FileAssignmentInfo GetFileAssignmentInfo(XElement settingsGroup, FileStateInfo fileStateInfo)
        {
            var settingsBundleId = GetSettingsBundleAttributeValue(settingsGroup, "Id");

            if (settingsBundleId == "LanguageFileServerStateSettings")
            {
                return(null);
            }

            var fileAssignmentInfo = new FileAssignmentInfo
            {
                FileStateInfo = fileStateInfo,
                Phase         = GetFileAssignmentPhase(settingsBundleId)
            };

            if (string.IsNullOrEmpty(fileAssignmentInfo.Phase))
            {
                return(fileAssignmentInfo);
            }

            SetFileAssignmentAttributes(settingsGroup, fileAssignmentInfo);
            return(fileAssignmentInfo);
        }