Ejemplo n.º 1
0
        private static bool IsHlu(CrudOperationData jsonObject)
        {
            var attribute   = jsonObject.GetAttribute("fromlocation") as string;
            var hh1Location = ISMConstants.NormalizeLocation(attribute);

            return(HLULocation.Equals(hh1Location));
        }
Ejemplo n.º 2
0
        private static string GetCurrentITC(CrudOperationData jsonObject)
        {
            var result = jsonObject.GetAttribute("currentitc") as string;

            return(result == null ? "#fakeuserjusttonotthrowexception" : ISMConstants.AddEmailIfNeeded(result).ToUpper());
            //            return SecurityFacade.CurrentUser().MaximoPersonId;
        }
Ejemplo n.º 3
0
        private static void ChangeApprovalsHandler(ChangeRequest changeRequest, string selectedaction, string groupName, CrudOperationData jsonObject)
        {
            string log;
            string actionid;
            var    approved = selectedaction == "Approved";

            if (approved)
            {
                log      = "Approved by group " + groupName;
                actionid = "APPROVAL OBTAINED";
            }
            else
            {
                log      = "Rejected by group " + groupName;
                actionid = "REASON REJECTING";
            }
            var worklogList = new List <ChangeLog>();
            var user        = SecurityFacade.CurrentUser();
            var changeLog   = new ChangeLog {
                Log                  = log,
                ActionID             = actionid,
                UserID               = ISMConstants.AddEmailIfNeeded(user.MaximoPersonId),
                LogDateTimeSpecified = true,
                LogDateTime          = DateTime.Now
            };

            worklogList.Add(changeLog);

            if (!approved)
            {
                var reason = jsonObject.GetAttribute("#reasonreject") as string;

                //                R0033
                //                correct implemented, but: didnt realised that the Approval and Reject worklogs are not displayed at ServiceIT
                //                    Please create a seperate Worklog entry with Summary:
                //                Reject Reason for group YYY
                //                Type: REASON REJECTING
                var changeLog2 = new ChangeLog {
                    Log                  = "Reject Reason for group " + groupName,
                    ActionID             = "UPDATE",
                    UserID               = ISMConstants.AddEmailIfNeeded(user.MaximoPersonId),
                    LogDateTimeSpecified = true,
                    LogDateTime          = DateTime.Now,
                    FlexFields           = new[]
                    {
                        new FlexFieldsFlexField {
                            mappedTo = "WLLongDesc", id = "0", Value = reason
                        }
                    },
                };


                worklogList.Add(changeLog2);
            }


            changeRequest.ChangeLog = ArrayUtil.PushRange(changeRequest.ChangeLog, worklogList);
        }
Ejemplo n.º 4
0
        private static Boolean HandleWorkLog(CrudOperationData entity, ChangeRequest maximoTicket)
        {
            var maximoWorklogs = entity.GetRelationship("worklog_");
            var worklogList    = new List <ChangeLog>();
            var user           = SecurityFacade.CurrentUser();

            foreach (var jsonWorklog in (IEnumerable <CrudOperationData>)maximoWorklogs)
            {
                var worklogid = jsonWorklog.GetAttribute("worklogid");
                if (worklogid == null)
                {
                    var changeLog = new ChangeLog {
                        Log                  = (string)jsonWorklog.GetAttribute("description"),
                        ActionID             = "CLIENTNOTE",
                        UserID               = ISMConstants.AddEmailIfNeeded(user.MaximoPersonId),
                        LogDateTimeSpecified = true,
                        LogDateTime          = DateTime.Now
                    };
                    var longDesc = "";
                    var ld       = (CrudOperationData)jsonWorklog.GetRelationship("longdescription");
                    if (ld != null)
                    {
                        longDesc = (string)ld.GetAttribute("ldtext");
                    }
                    changeLog.FlexFields = new[] {
                        new FlexFieldsFlexField {
                            mappedTo = "WLLongDesc", id = "0", Value = longDesc
                        }
                    };

                    worklogList.Add(changeLog);
                }
            }

            maximoTicket.ChangeLog = ArrayUtil.PushRange(maximoTicket.ChangeLog, worklogList);
            return(worklogList.Any());
        }
        public override void BeforeUpdate(MaximoOperationExecutionContext maximoTemplateData)
        {
            base.BeforeUpdate(maximoTemplateData);
            var jsonObject      = (CrudOperationData)maximoTemplateData.OperationData;
            var serviceIncident = (ServiceIncident)maximoTemplateData.IntegrationObject;

            var taskId   = jsonObject.GetUnMappedAttribute("WoActivityId");
            var activity = new Activity {
                type             = "WOActivity",
                ActionID         = taskId,
                ActionLogSummary = jsonObject.GetUnMappedAttribute("#tasksummary")
            };
            var fail = jsonObject.ContainsAttribute("#selectedAction") && "FAIL".EqualsIc(jsonObject.GetAttribute("#selectedAction") as string);

            var ownergroup = jsonObject.GetUnMappedAttribute("activityownergroup");
            var sequence   = jsonObject.GetUnMappedAttribute("activitysequence");

            activity.FlexFields      = ArrayUtil.PushRange(activity.FlexFields, BuildFlexFields(ownergroup, sequence, !fail));
            serviceIncident.Activity = ArrayUtil.Push(serviceIncident.Activity, activity);

            if (fail)
            {
                serviceIncident.Activity = PushExtraActivitiesForFailure(serviceIncident.Activity, jsonObject);
                var user       = SecurityFacade.CurrentUser();
                var wlActivity = new Activity {
                    ActionLogSummary = "Task {0} Failed".Fmt(taskId),
                    ActionLog        = jsonObject.GetUnMappedAttribute("#reasonreject"),
                    type             = "WorkLog",
                    UserID           = ISMConstants.AddEmailIfNeeded(user.MaximoPersonId),
                    ActivityType     = "CLIENTNOTE"
                };

                serviceIncident.Activity = ArrayUtil.Push(serviceIncident.Activity, wlActivity);
            }

            CheckIMACResolved(serviceIncident, jsonObject);
        }
Ejemplo n.º 6
0
        public IEnumerable <Activity> LoadFromServicePlan(string schemaid, CrudOperationData jsonObject)
        {
            if ("installstd".Equals(schemaid))
            {
                return(HandleIbmTechMatrix(jsonObject, "HLAINPCS", "HLAINPCH", "HLAINPCW", "HLAINPCH_HLU", "HLAINPCS_HLU"));
            }
            if ("installlan".Equals(schemaid))
            {
                if ("lan".Equals(jsonObject.GetAttribute("lantype")))
                {
                    return(HandleIbmTechMatrix(jsonObject, "HLAINPRS", "HLAINPRH", "HLAINPRW", "HLAINPRH_HLU", "HLAINPRS_HLU"));
                }
                return(HandleIbmTechMatrix(jsonObject, "HLAINPRSEP", "HLAINPRHHP", "HLAINPRWWP", "HLAINPRHHP_HLU", "HLAINPRSEP_HLU"));
            }

            if ("installother".Equals(schemaid))
            {
                var classification = jsonObject.GetAttribute("classification") ?? "";
                if (!classification.Equals("43290200"))
                {
                    return(DoLoadFromFile("HLAINOTHER"));
                }
                return(HandleIbmTechMatrix(jsonObject, "HLAINVPCS", "HLAINVPCS", "HLAINVPCS", "HLAINVPCS_HLU",
                                           "HLAINVPCS_HLU"));
            }
            var lanType      = jsonObject.GetAttribute("lantype") as string ?? "";
            var isLan        = lanType.Equals("lan", StringComparison.CurrentCultureIgnoreCase);
            var isLanHostPap = lanType.Equals("lan/host/pap", StringComparison.CurrentCultureIgnoreCase);
            var assetRel     = (CrudOperationData)jsonObject.GetRelationship("asset");

            if (assetRel == null)
            {
                throw ExceptionUtil.InvalidOperation("asset should be selected");
            }
            var assetStatus  = assetRel.GetAttribute("status") as string ?? "";
            var isIdleStatus = "150 Idle".Equals(assetStatus, StringComparison.CurrentCultureIgnoreCase);

            if ("move".Equals(schemaid))
            {
                var currentITC     = GetCurrentITC(jsonObject);
                var fromLocation   = jsonObject.GetAttribute("fromlocation");
                var toLocation     = jsonObject.GetAttribute("tolocation");
                var classification = jsonObject.GetUnMappedAttribute("asset_.classstructureid") ?? "";

                var toITC = ISMConstants.AddEmailIfNeeded(jsonObject.GetAttribute("toitc") as string);
                if (toITC != null)
                {
                    toITC = toITC.ToUpper();
                }
                if (fromLocation.Equals(toLocation))
                {
                    if (currentITC.Equals(toITC))
                    {
                        return(HandleIbmTechMatrix(jsonObject, "HLAMVINS", "HLAMVINH", "HLAMVINW", "HLAMVINH_HLU", "HLAMVINS_HLU"));
                    }

                    if (isIdleStatus)
                    {
                        return(HandleIbmTechMatrix(jsonObject, "HLAMVINCOS", "HLAMVINCOH", null, "HLAMVINCOH_HLU", "HLAMVINCOS_HLU"));
                    }



                    if (classification.StartsWith("432121"))
                    {
                        if (isLan)
                        {
                            return(HandleIbmTechMatrix(jsonObject, "HLARMPRSIO", "HLARMPRHIO", "HLARMPRWIO", "HLARMPRHIO_HLU", "HLARMPRSIO_HLU"));
                        }
                        if ("lan/host".Equals(lanType) || isLanHostPap)
                        {
                            return(HandleIbmTechMatrix(jsonObject, "HLARMPPSIO", "HLARMPPHIO", "HLARMPPWIO", "HLARMPPHIO_HLU", "HLARMPPSIO_HLU"));
                        }
                    }
                    return(HandleIbmTechMatrix(jsonObject, "HLARMPCSIO", "HLARMPCHIO", "HLARMPCWIO", "HLARMPCHIO_HLU", "HLARMPCSIO_HLU"));
                }

                if (currentITC.Equals(toITC))
                {
                    if (isIdleStatus)
                    {
                        return(DoLoadFromFile("HLAMVOTS"));
                    }
                    if (classification.StartsWith("432121"))
                    {
                        if (isLan)
                        {
                            return(HandleIbmTechMatrix2Cases(jsonObject, "HLARMPRSOS", "HLARMPRSOS_HLU"));
                        }
                        if (isLanHostPap)
                        {
                            return(HandleIbmTechMatrix2Cases(jsonObject, "HLARMPPSOS", "HLARMPPSOS_HLU"));
                        }
                    }
                    return(HandleIbmTechMatrix2Cases(jsonObject, "HLARMPCSOS", "HLARMPCSOS_HLU"));
                }
                if (classification.StartsWith("432121"))
                {
                    if (isLan)
                    {
                        return(HandleIbmTechMatrix2Cases(jsonObject, "HLARMPRSOO", "HLARMPRSOO_HLU"));
                    }
                    if (isLanHostPap)
                    {
                        return(HandleIbmTechMatrix2Cases(jsonObject, "HLARMPPSOO", "HLARMPPSOO_HLU"));
                    }
                }
                if (!isIdleStatus)
                {
                    return(HandleIbmTechMatrix2Cases(jsonObject, "HLARMPCSOO", "HLARMPCSOO_HLU"));
                }
                return(DoLoadFromFile("HLAMVOTCOS"));
            }

            if ("update".Equals(schemaid))
            {
                return(DoLoadFromFile("HLAUPDASSD"));
            }

            if ("add".Equals(schemaid))
            {
                return(HandleIbmTechMatrix(jsonObject, "HLAADDCOMS", "HLAADDCOMH", "HLAADDCOMW", "HLAADDCOMH_HLU", "HLAADDCOMS"));
            }

            if ("removestd".Equals(schemaid))
            {
                return(HandleIbmTechMatrix(jsonObject, "HLARVPCS", "HLARVPCH", "HLARVPCW", "HLARVPCH_HLU", "HLARVPCS_HLU"));
            }

            if ("removelan".Equals(schemaid))
            {
                if (isLan)
                {
                    return(HandleIbmTechMatrix(jsonObject, "HLARVPRS", "HLARVPRH", "HLARVPRW", "HLARVPRH_HLU", "HLARVPRS_HLU"));
                }
                return(HandleIbmTechMatrix(jsonObject, "HLARVPRSEP", "HLARVPRHHP", "HLARVPRWWP", "HLARVPRHHP_HLU", "HLARVPRSEP_HLU"));
            }

            if ("removeother".Equals(schemaid))
            {
                return(DoLoadFromFile("HLARVOTHER"));
            }

            if ("replacestd".Equals(schemaid))
            {
                return(HandleIbmTechMatrix(jsonObject, "HLARPPCS", "HLARPPCH", "HLARPPCW", "HLARPPCH_HLU", "HLARPPCS_HLU"));
            }

            if ("replacelan".Equals(schemaid))
            {
                if (isLan)
                {
                    return(HandleIbmTechMatrix(jsonObject, "HLARPPRS", "HLARPPRH", "HLARPPRW", "HLARPPRH_HLU", "HLARPPRS_HLU"));
                }
                return(HandleIbmTechMatrix(jsonObject, "HLARPPRSEP", "HLARPPRHHP", "HLARPPRWWP", "HLARPPRHHP_HLU", "HLARPPRSEP_HLU"));
            }

            if ("replaceother".Equals(schemaid))
            {
                return(DoLoadFromFile("HLARPOTHER"));
            }

            if ("decommission".Equals(schemaid))
            {
                return(DoLoadFromFile("HLADECOMM"));
            }

            return(null);
        }