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); }
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); }
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); }