예제 #1
0
        public static ActionColumnViewModel GetActionValues(
            string header,
            KAction action,
            IEnumerable <ProjectReferential> usedReferentials,
            Dictionary <int, string> wbsValues = null)
        {
            var model = new ActionColumnViewModel {
                Values = new List <ActionValueViewModel>()
            };

            switch (header)
            {
            case nameof(PublishedAction.WBS):
                model.Values.Add(new ActionValueViewModel
                {
                    Type  = "Text",
                    Value = wbsValues?.GetOrDefault(action.ActionId) ?? action.WBS
                });
                break;

            case nameof(PublishedAction.Label):
                model.Values.Add(new ActionValueViewModel
                {
                    Type  = "Text",
                    Value = action.Label ?? string.Empty
                });
                break;

            case nameof(PublishedAction.Thumbnail):
                model.Values.Add(new ActionValueViewModel
                {
                    Type     = "Image",
                    Value    = action.Thumbnail?.Hash,
                    FileHash = action.Thumbnail?.Hash,
                    FileExt  = action.Thumbnail?.Extension
                });
                break;

            case nameof(PublishedAction.Duration):
                model.Values.Add(new ActionValueViewModel
                {
                    Type  = "Text",
                    Value = TicksUtil.TicksToString(action.Duration, action.Scenario.Project.TimeScale)
                });
                break;

            case nameof(PublishedAction.PublishedResource):
                model.Values.Add(BuildFile(action.Operator?.CloudFile ?? action.Equipment?.CloudFile,
                                           action.Operator?.Label ?? action.Equipment?.Label, 1));
                break;

            case nameof(PublishedAction.Refs1):
                model.Values = BuildReferentialFile(action.Refs(ProcessReferentialIdentifier.Ref1), usedReferentials);
                break;

            case nameof(PublishedAction.Refs2):
                model.Values = BuildReferentialFile(action.Refs(ProcessReferentialIdentifier.Ref2), usedReferentials);
                break;

            case nameof(PublishedAction.Refs3):
                model.Values = BuildReferentialFile(action.Refs(ProcessReferentialIdentifier.Ref3), usedReferentials);
                break;

            case nameof(PublishedAction.Refs4):
                model.Values = BuildReferentialFile(action.Refs(ProcessReferentialIdentifier.Ref4), usedReferentials);
                break;

            case nameof(PublishedAction.Refs5):
                model.Values = BuildReferentialFile(action.Refs(ProcessReferentialIdentifier.Ref5), usedReferentials);
                break;

            case nameof(PublishedAction.Refs6):
                model.Values = BuildReferentialFile(action.Refs(ProcessReferentialIdentifier.Ref6), usedReferentials);
                break;

            case nameof(PublishedAction.Refs7):
                model.Values = BuildReferentialFile(action.Refs(ProcessReferentialIdentifier.Ref7), usedReferentials);
                break;

            default:
                var attribute = ReflectionHelper.GetPropertyValue(action, header);
                model.Values.Add(new ActionValueViewModel
                {
                    Type  = "Text",
                    Value = attribute != null ? attribute.ToString() : ""
                });
                break;
            }
            return(model);
        }
예제 #2
0
        public static ActionColumnViewModel GetActionValues(string header,
                                                            GenericActionViewModel action,
                                                            Dictionary <int, string> wbsValues = null)
        {
            var model = new ActionColumnViewModel {
                Values = new List <ActionValueViewModel>()
            };

            switch (header)
            {
            case nameof(PublishedAction.WBS):
                model.Values.Add(new ActionValueViewModel
                {
                    Type  = "Text",
                    Value = wbsValues?.GetOrDefault(action.ActionId) ?? action.WBS
                });
                break;

            case nameof(PublishedAction.Label):
                model.Values.Add(new ActionValueViewModel
                {
                    Type  = "Text",
                    Value = action.Label ?? string.Empty
                });
                break;

            case nameof(PublishedAction.Thumbnail):
                model.Values.Add(new ActionValueViewModel
                {
                    Type     = "Image",
                    Value    = action.ImageHash,
                    FileHash = action.ImageHash,
                    FileExt  = action.Extension
                });
                break;

            case nameof(PublishedAction.Duration):
                model.Values.Add(new ActionValueViewModel
                {
                    Type  = "Text",
                    Value = TicksUtil.TicksToString(action.Duration, action.TimeScale)
                });
                break;

            case nameof(PublishedAction.Refs1):
                model.Values = BuildMultiValueRefs(action, ProcessReferentialIdentifier.Ref1);
                break;

            case nameof(PublishedAction.Refs2):
                model.Values = BuildMultiValueRefs(action, ProcessReferentialIdentifier.Ref2);
                break;

            case nameof(PublishedAction.Refs3):
                model.Values = BuildMultiValueRefs(action, ProcessReferentialIdentifier.Ref3);
                break;

            case nameof(PublishedAction.Refs4):
                model.Values = BuildMultiValueRefs(action, ProcessReferentialIdentifier.Ref4);
                break;

            case nameof(PublishedAction.Refs5):
                model.Values = BuildMultiValueRefs(action, ProcessReferentialIdentifier.Ref5);
                break;

            case nameof(PublishedAction.Refs6):
                model.Values = BuildMultiValueRefs(action, ProcessReferentialIdentifier.Ref6);
                break;

            case nameof(PublishedAction.Refs7):
                model.Values = BuildMultiValueRefs(action, ProcessReferentialIdentifier.Ref7);
                break;

            case nameof(PublishedAction.CustomTextValue):
                model.Values.Add(new ActionValueViewModel
                {
                    Type  = "Text",
                    Value = action.CustomTextValues != null ? action.CustomTextValues
                            .Where(t => t.Key == ProcessReferentialIdentifier.CustomTextLabel)
                            .Select(t => t.Value)
                            .DefaultIfEmpty(string.Empty)
                            .FirstOrDefault() : string.Empty
                });
                break;

            case nameof(PublishedAction.CustomTextValue2):
                model.Values.Add(new ActionValueViewModel
                {
                    Type  = "Text",
                    Value = action.CustomTextValues != null ? action.CustomTextValues
                            .Where(t => t.Key == ProcessReferentialIdentifier.CustomTextLabel2)
                            .Select(t => t.Value)
                            .DefaultIfEmpty(string.Empty)
                            .FirstOrDefault() : string.Empty
                });
                break;

            case nameof(PublishedAction.CustomTextValue3):
                model.Values.Add(new ActionValueViewModel
                {
                    Type  = "Text",
                    Value = action.CustomTextValues != null ? action.CustomTextValues
                            .Where(t => t.Key == ProcessReferentialIdentifier.CustomTextLabel3)
                            .Select(t => t.Value)
                            .DefaultIfEmpty(string.Empty)
                            .FirstOrDefault() : string.Empty
                });
                break;

            case nameof(PublishedAction.CustomTextValue4):
                model.Values.Add(new ActionValueViewModel
                {
                    Type  = "Text",
                    Value = action.CustomTextValues != null ? action.CustomTextValues
                            .Where(t => t.Key == ProcessReferentialIdentifier.CustomTextLabel4)
                            .Select(t => t.Value)
                            .DefaultIfEmpty(string.Empty)
                            .FirstOrDefault() : string.Empty
                });
                break;

            case nameof(PublishedAction.CustomNumericValue):
                model.Values.Add(new ActionValueViewModel
                {
                    Type  = "Text",
                    Value = action.CustomNumericFields != null ? action.CustomNumericValues
                            .Where(t => t.Key == ProcessReferentialIdentifier.CustomNumericLabel)
                            .Select(t => $"{t.Value}")
                            .DefaultIfEmpty(string.Empty)
                            .FirstOrDefault() : string.Empty
                });
                break;

            case nameof(PublishedAction.CustomNumericValue2):
                model.Values.Add(new ActionValueViewModel
                {
                    Type  = "Text",
                    Value = action.CustomNumericFields != null ? action.CustomNumericValues
                            .Where(t => t.Key == ProcessReferentialIdentifier.CustomNumericLabel2)
                            .Select(t => $"{t.Value}")
                            .DefaultIfEmpty(string.Empty)
                            .FirstOrDefault() : string.Empty
                });
                break;

            case nameof(PublishedAction.CustomNumericValue3):
                model.Values.Add(new ActionValueViewModel
                {
                    Type  = "Text",
                    Value = action.CustomNumericFields != null ? action.CustomNumericValues
                            .Where(t => t.Key == ProcessReferentialIdentifier.CustomNumericLabel3)
                            .Select(t => $"{t.Value}")
                            .DefaultIfEmpty(string.Empty)
                            .FirstOrDefault() : string.Empty
                });
                break;

            case nameof(PublishedAction.CustomNumericValue4):
                model.Values.Add(new ActionValueViewModel
                {
                    Type  = "Text",
                    Value = action.CustomNumericFields != null ? action.CustomNumericValues
                            .Where(t => t.Key == ProcessReferentialIdentifier.CustomNumericLabel4)
                            .Select(t => $"{t.Value}")
                            .DefaultIfEmpty(string.Empty)
                            .FirstOrDefault() : string.Empty
                });
                break;

            default:
                var attribute = ReflectionHelper.GetPropertyValue(action, header);
                model.Values.Add(new ActionValueViewModel
                {
                    Type  = "Text",
                    Value = attribute != null ? attribute.ToString() : string.Empty
                });
                break;
            }
            return(model);
        }
예제 #3
0
        public static ActionColumnViewModel GetPublishedActionAttributes(
            PublishedAction action,
            object attribute,
            string header,
            string mapping,
            Dictionary <string, string> localizations,
            List <RefsCollection> refCollections,
            List <CustomLabel> customLabel
            )
        {
            var model = new ActionColumnViewModel {
                Values = new List <ActionValueViewModel>()
            };
            var referenceMappingNames = new string[] { "Refs1", "Refs2", "Refs3", "Refs4", "Refs5", "Refs6", "Refs7" };

            if (referenceMappingNames.Contains(mapping))
            {
                switch (mapping)
                {
                case "Refs1":
                    model.Values = BuildPublishedReferentialFile(refCollections.FirstOrDefault(u => u.Label == localizations[nameof(Ref1)]));
                    break;

                case "Refs2":
                    model.Values = BuildPublishedReferentialFile(refCollections.FirstOrDefault(u => u.Label == localizations[nameof(Ref2)]));
                    break;

                case "Refs3":
                    model.Values = BuildPublishedReferentialFile(refCollections.FirstOrDefault(u => u.Label == localizations[nameof(Ref3)]));
                    break;

                case "Refs4":
                    model.Values = BuildPublishedReferentialFile(refCollections.FirstOrDefault(u => u.Label == localizations[nameof(Ref4)]));
                    break;

                case "Refs5":
                    model.Values = BuildPublishedReferentialFile(refCollections.FirstOrDefault(u => u.Label == localizations[nameof(Ref5)]));
                    break;

                case "Refs6":
                    model.Values = BuildPublishedReferentialFile(refCollections.FirstOrDefault(u => u.Label == localizations[nameof(Ref6)]));
                    break;

                case "Refs7":
                    model.Values = BuildPublishedReferentialFile(refCollections.FirstOrDefault(u => u.Label == localizations[nameof(Ref7)]));
                    break;
                }
                return(model);
            }

            switch (mapping)
            {
            case nameof(PublishedAction.Thumbnail):
                model.Values.Add(new ActionValueViewModel
                {
                    Type     = "Image",
                    Value    = action.ThumbnailHash,
                    FileHash = action.ThumbnailHash,
                    FileExt  = action.Thumbnail?.Extension
                });
                break;

            case nameof(ProcessReferentialIdentifier.Skill):
                model.Values.Add(new ActionValueViewModel
                {
                    Type  = "Text",
                    Value = attribute != null ? ((Skill)attribute).Label : ""
                });
                break;

            case nameof(ProcessReferentialIdentifier.Operator):
                model.Values.Add(new ActionValueViewModel
                {
                    Type  = "Text",
                    Value = attribute != null ? ((Operator)attribute).Label : ""
                });
                break;

            case nameof(ProcessReferentialIdentifier.Equipment):
                model.Values.Add(new ActionValueViewModel
                {
                    Type  = "Text",
                    Value = attribute != null ? ((Equipment)attribute).Label : ""
                });
                break;

            case nameof(PublishedAction.PublishedResource):
                model.Values.Add(BuildPublishedResourceFile(action.PublishedResource));
                break;

            case nameof(ProcessReferentialIdentifier.Category):
            case nameof(PublishedAction.PublishedActionCategory):
                model.Values.Add(BuildPublishedActionCategoryFile(action.PublishedActionCategory));
                break;

            case nameof(PublishedAction.Start):
                model.Values.Add(new ActionValueViewModel
                {
                    Type  = "Text",
                    Value = TicksUtil.TicksToString((long)attribute, action.Publication.TimeScale)
                });
                break;

            case nameof(PublishedAction.Finish):
                model.Values.Add(new ActionValueViewModel
                {
                    Type  = "Text",
                    Value = TicksUtil.TicksToString((long)attribute, action.Publication.TimeScale)
                });
                break;

            case nameof(PublishedAction.Duration):
                model.Values.Add(new ActionValueViewModel
                {
                    Type  = "Text",
                    Value = TicksUtil.TicksToString((long)attribute, action.Publication.TimeScale)
                });
                break;

            case nameof(PublishedAction.BuildStart):
                model.Values.Add(new ActionValueViewModel
                {
                    Type  = "Text",
                    Value = TicksUtil.TicksToString((long)attribute, action.Publication.TimeScale)
                });
                break;

            case nameof(PublishedAction.BuildFinish):
                model.Values.Add(new ActionValueViewModel
                {
                    Type  = "Text",
                    Value = TicksUtil.TicksToString((long)attribute, action.Publication.TimeScale)
                });
                break;

            case nameof(PublishedAction.Refs1):
                model.Values = BuildPublishedReferentialFile(refCollections.FirstOrDefault(u => u.Label == localizations[nameof(Ref1)]));
                break;

            case nameof(PublishedAction.Refs2):
                model.Values = BuildPublishedReferentialFile(refCollections.FirstOrDefault(u => u.Label == localizations[nameof(Ref2)]));
                break;

            case nameof(PublishedAction.Refs3):
                model.Values = BuildPublishedReferentialFile(refCollections.FirstOrDefault(u => u.Label == localizations[nameof(Ref3)]));
                break;

            case nameof(PublishedAction.Refs4):
                model.Values = BuildPublishedReferentialFile(refCollections.FirstOrDefault(u => u.Label == localizations[nameof(Ref4)]));
                break;

            case nameof(PublishedAction.Refs5):
                model.Values = BuildPublishedReferentialFile(refCollections.FirstOrDefault(u => u.Label == localizations[nameof(Ref5)]));
                break;

            case nameof(PublishedAction.Refs6):
                model.Values = BuildPublishedReferentialFile(refCollections.FirstOrDefault(u => u.Label == localizations[nameof(Ref6)]));
                break;

            case nameof(PublishedAction.Refs7):
                model.Values = BuildPublishedReferentialFile(refCollections.FirstOrDefault(u => u.Label == localizations[nameof(Ref7)]));
                break;

            case nameof(PublishedAction.CustomNumericValue):
            case nameof(PublishedAction.CustomNumericValue2):
            case nameof(PublishedAction.CustomNumericValue3):
            case nameof(PublishedAction.CustomNumericValue4):
                model.Values.Add(new ActionValueViewModel
                {
                    Type  = "Text",
                    Value = attribute != null ? Convert.ToDecimal(attribute).ToString(CultureInfo.CreateSpecificCulture(JwtTokenProvider.GetUserModelCurrentLanguage(System.Web.HttpContext.Current.Request.Cookies["token"].Value))).TrimEnd('0') : ""
                });
                break;

            default:
                model.Values.Add(new ActionValueViewModel
                {
                    Type  = "Text",
                    Value = attribute != null ? attribute.ToString() : ""
                });
                break;
            }
            return(model);
        }