Esempio n. 1
0
    public static string SaveChanges(string rows)
    {
        Dictionary <string, string> result = new Dictionary <string, string>()
        {
            { "saved", "0" }
            , { "failed", "0" }
            , { "savedIds", "" }
            , { "failedIds", "" }
            , { "error", "" }
        };
        bool   saved = false;
        int    savedQty = 0, failedQty = 0;
        string ids = string.Empty, failedIds = string.Empty, errorMsg = string.Empty, tempMsg = string.Empty;

        try
        {
            DataTable dtjson = (DataTable)JsonConvert.DeserializeObject(rows, (typeof(DataTable)));
            if (dtjson == null || dtjson.Rows.Count == 0)
            {
                errorMsg = "Unable to save. No list of changes was provided.";
            }
            else
            {
                int id = 0;

                //save
                foreach (DataRow dr in dtjson.Rows)
                {
                    id      = 0;
                    tempMsg = string.Empty;
                    int.TryParse(dr["ITEMID"].ToString(), out id);

                    WorkloadItem wi = WorkloadItem.WorkItem_GetObject(id);
                    //update object with new values
                    wi = parseDataRow(wi, dtjson.Clone(), dr);

                    saved = WorkloadItem.WorkItem_QM_Update(wi, out tempMsg);

                    if (saved)
                    {
                        ids      += string.Format("{0}{1}", ids.Length > 0 ? "," : "", id.ToString());
                        savedQty += 1;
                        Workload.SendWorkloadEmail("WorkItem", false, id);
                    }
                    else
                    {
                        failedQty += 1;
                    }

                    if (tempMsg.Length > 0)
                    {
                        errorMsg = string.Format("{0}{1}{2}", errorMsg, errorMsg.Length > 0 ? Environment.NewLine : "", tempMsg);
                    }
                }
            }
        }
        catch (Exception ex)
        {
            LogUtility.LogException(ex);
            saved    = false;
            errorMsg = ex.Message;
        }

        result["savedIds"]  = ids;
        result["failedIds"] = failedIds;
        result["saved"]     = savedQty.ToString();
        result["failed"]    = failedQty.ToString();
        result["error"]     = errorMsg;

        return(JsonConvert.SerializeObject(result, Formatting.None));
    }
Esempio n. 2
0
    public static string SaveChanges(string rows)
    {
        Dictionary <string, string> result = new Dictionary <string, string>()
        {
            { "saved", "0" }
            , { "failed", "0" }
            , { "savedIds", "" }
            , { "failedIds", "" }
            , { "error", "" }
        };
        int    savedQty = 0, failedQty = 0;
        string ids = string.Empty, failedIds = string.Empty, errorMsg = string.Empty, tempMsg = string.Empty;
        int    savedInt = 0;

        try
        {
            DataTable dtjson = (DataTable)JsonConvert.DeserializeObject(rows, (typeof(DataTable)));
            if (dtjson == null || dtjson.Rows.Count == 0)
            {
                errorMsg = "Unable to save. No list of changes was provided.";
            }
            else
            {
                int  id = 0;
                int  workItemID = 0, workItemStatusID = 0, workItemProgress = 0, workItemAssignedID = 0, workItemPrimaryID = 0, workItemTesterID = 0;
                int  testItemID = 0, testItemStatusID = 0, testItemProgress = 0, testItemAssignedID = 0, testItemPrimaryID = 0, testItemTesterID = 0;
                bool saved = false, duplicate = false;

                WorkloadItem item = null, testItem = null;

                //save
                foreach (DataRow dr in dtjson.Rows)
                {
                    saved            = duplicate = false;
                    id               = workItemID = testItemID = 0;
                    workItemStatusID = workItemProgress = workItemAssignedID = workItemPrimaryID = workItemTesterID = 0;
                    testItemStatusID = testItemProgress = testItemAssignedID = testItemPrimaryID = testItemTesterID = 0;
                    tempMsg          = string.Empty;

                    int.TryParse(dr["WorkItem_TestItemID"].ToString(), out id);
                    int.TryParse(dr["WorkItem_Number"].ToString(), out workItemID);
                    int.TryParse(dr["WorkItem_STATUS"].ToString(), out workItemStatusID);
                    int.TryParse(dr["WorkItem_Progress"].ToString(), out workItemProgress);
                    // SCB - Added "ID" to the end of these two - didn't match up with the datatable.
                    int.TryParse(dr["WorkItem_AssignedToID"].ToString(), out workItemAssignedID);
                    int.TryParse(dr["WorkItem_Primary_ResourceID"].ToString(), out workItemPrimaryID);
                    int.TryParse(dr["WorkItem_TesterID"].ToString(), out workItemTesterID);

                    int.TryParse(dr["TestItem_Number"].ToString(), out testItemID);

                    int.TryParse(dr["TestItem_STATUS"].ToString(), out testItemStatusID);
                    int.TryParse(dr["TestItem_Progress"].ToString(), out testItemProgress);
                    int.TryParse(dr["TestItem_AssignedTo"].ToString(), out testItemAssignedID);
                    int.TryParse(dr["TestItem_Primary_Resource"].ToString(), out testItemPrimaryID);
                    int.TryParse(dr["TestItem_Tester"].ToString(), out testItemTesterID);

                    if (workItemID == 0 || testItemID == 0)
                    {
                        saved      = false;
                        failedQty += 1;
                        tempMsg    = "You must specify both a Work Item and a Test Item.";
                    }
                    else
                    {
                        if (id == 0)
                        {
                            if (!Workload.ItemExists(workItemID, -1, "Primary Task"))
                            {
                                saved   = false;
                                tempMsg = string.Format("Unable to find Primary Task with ID = [{0}]", workItemID.ToString());
                            }
                            else if (!Workload.ItemExists(testItemID, -1, "Primary Task"))
                            {
                                saved   = false;
                                tempMsg = string.Format("Unable to find Test Task with ID = [{0}]", testItemID.ToString());
                            }
                            else
                            {
                                saved = WorkloadItem.WorkItem_TestItem_Add(workItemID: workItemID, testItemID: testItemID, archive: false, duplicate: out duplicate, newID: out id, errorMsg: out tempMsg);
                            }
                        }
                        else
                        {
                            item     = WorkloadItem.WorkItem_GetObject(workItemID);
                            testItem = WorkloadItem.WorkItem_GetObject(testItemID);

                            if (itemChanged(ref item, workItemStatusID, workItemProgress, workItemAssignedID, workItemPrimaryID, workItemTesterID))
                            {
                                savedInt = WorkloadItem.WorkItem_Update(item, out tempMsg);
                            }
                            if (itemChanged(ref testItem, testItemStatusID, testItemProgress, testItemAssignedID, testItemPrimaryID, testItemTesterID))
                            {
                                savedInt = WorkloadItem.WorkItem_Update(testItem, out tempMsg);
                            }

                            if (savedInt == 0)
                            {
                                saved = false;
                            }
                            else
                            {
                                saved = true;
                            }
                        }

                        if (saved)
                        {
                            savedQty += 1;
                            ids      += string.Format("{0}{1}", ids.Length > 0 ? "," : "", id.ToString());
                        }
                        else
                        {
                            failedQty += 1;
                            errorMsg   = string.Format("{0}{1}{2}", errorMsg, errorMsg.Length > 0 ? Environment.NewLine : "", tempMsg);
                        }
                    }
                }
            }
        }
        catch (Exception ex)
        {
            LogUtility.LogException(ex);
            errorMsg = errorMsg.Length > 0 ? ", " + Environment.NewLine + ex.Message : ex.Message;
        }

        result["savedIds"]  = ids;
        result["failedIds"] = failedIds;
        result["saved"]     = savedQty.ToString();
        result["failed"]    = failedQty.ToString();
        result["error"]     = errorMsg;

        return(JsonConvert.SerializeObject(result, Formatting.None));
    }
Esempio n. 3
0
    protected void Page_Load(object sender, EventArgs e)
    {
        this.CanEdit             = UserManagement.UserCanEdit(WTSModuleOption.WorkItemTask);
        this.CanEditAOR          = UserManagement.UserCanEdit(WTSModuleOption.AOR);
        this.CanEditWorkloadMGMT = UserManagement.UserCanEdit(WTSModuleOption.WorkloadMGMT);

        readQueryString();
        LoadRelatedItemsMenu();
        if (this.ReadOnly)
        {
            this.CanEdit    = false;
            this.CanEditAOR = false;
        }

        loadLookupData();

        if (this.WorkItem_TaskID > 0)
        {
            loadTask();
        }
        else
        {
            WorkloadItem wi = WorkloadItem.WorkItem_GetObject(workItemID: this.WorkItemID);

            ListItem li = null;
            li = ddlAssignedTo.Items.FindByValue(wi.AssignedResourceID.ToString());
            if (li == null)
            {
                int uID = 0;
                int.TryParse(wi.AssignedResourceID.ToString(), out uID);
                WTS_User u = new WTS_User(uID);
                u.Load();

                li = new ListItem(u.First_Name + " " + u.Last_Name, wi.AssignedResourceID.ToString());

                if (u.AORResourceTeam)
                {
                    li.Attributes.Add("og", "Action Team");

                    DataTable dt = AOR.AORResourceTeamList_Get(AORID: 0, AORReleaseID: 0);
                    dt.DefaultView.RowFilter = "ResourceTeamUserID = " + uID;
                    dt = dt.DefaultView.ToTable();
                    if (dt.Rows.Count > 0)
                    {
                        li.Attributes.Add("aorid", dt.Rows[0]["AORID"].ToString());
                    }

                    ddlAssignedTo.Items.Insert(1, li);
                }
                else
                {
                    ddlAssignedTo.Items.Insert(0, li);
                }
            }
            li.Selected = true;

            WTSUtility.SelectDdlItem(ddlPrimaryResource, wi.PrimaryResourceID.ToString(), "");

            // 12817 - 30:
            WTSUtility.SelectDdlItem(ddlPrimaryBusResource, wi.PrimaryBusinessResourceID.ToString(), "");
            WTSUtility.SelectDdlItem(ddlSecondaryResource, wi.SecondaryResourceID.ToString(), "");
            WTSUtility.SelectDdlItem(ddlSecondaryBusResource, wi.SecondaryBusinessResourceID.ToString(), "");

            WTSUtility.SelectDdlItem(ddlPriority, wi.PriorityID.ToString(), "");
            //WTSUtility.SelectDdlItem(ddlHours_Planned, wi.EstimatedEffortID.ToString(), "");
            WTSUtility.SelectDdlItem(ddlProductVersion, wi.ProductVersionID.ToString(), "");

            this.lblProductVersion.Text = ddlProductVersion.SelectedItem.Text;
            this.SystemID = wi.WTS_SystemID;

            IsNew = true;
            this.txtWorkloadNumber.Text = this.WorkItemID.ToString() + " - NA";

            DataTable parentTaskData = WorkloadItem.WorkItem_Get(workItemID: WorkItemID);
            txtParentTitle.Text   = HttpUtility.HtmlDecode(Uri.UnescapeDataString(parentTaskData.Rows[0]["TITLE"].ToString().Replace("&nbsp;", "").Trim()));
            txtResourceGroup.Text = HttpUtility.HtmlDecode(Uri.UnescapeDataString(parentTaskData.Rows[0]["WorkType"].ToString().Replace("&nbsp;", "").Trim()));
            txtResourceGroup.Attributes.Add("ResourceGroupID", HttpUtility.HtmlDecode(Uri.UnescapeDataString(parentTaskData.Rows[0]["WorkTypeID"].ToString())));
            txtFunctionality.Text      = HttpUtility.HtmlDecode(Uri.UnescapeDataString(parentTaskData.Rows[0]["WorkloadGroup"].ToString().Replace("&nbsp;", "").Trim()));
            txtProductionStatus.Text   = HttpUtility.HtmlDecode(Uri.UnescapeDataString(parentTaskData.Rows[0]["ProductionStatus"].ToString().Replace("&nbsp;", "").Trim()));
            txtSystemTask.Text         = HttpUtility.HtmlDecode(Uri.UnescapeDataString(parentTaskData.Rows[0]["WTS_SYSTEM"].ToString().Replace("&nbsp;", "").Trim()));
            txtContract.Text           = HttpUtility.HtmlDecode(Uri.UnescapeDataString(parentTaskData.Rows[0]["CONTRACT"].ToString().Replace("&nbsp;", "").Trim()));
            txtWorkloadAllocation.Text = HttpUtility.HtmlDecode(Uri.UnescapeDataString(parentTaskData.Rows[0]["WorkloadAllocation"].ToString().Replace("&nbsp;", "").Trim()));

            int workAreaID = 0, systemID = 0;
            int.TryParse(parentTaskData.Rows[0]["WorkAreaID"].ToString(), out workAreaID);
            int.TryParse(parentTaskData.Rows[0]["WTS_SYSTEMID"].ToString(), out systemID);

            WTSUtility.SelectDdlItem(ddlWorkItemType, parentTaskData.Rows[0]["WorkItemTypeID"].ToString(), parentTaskData.Rows[0]["WorkItemType"].ToString());

            //dynamic filters = "{ 'System(Task)':{ 'value':'" + parentTaskData.Rows[0]["WTS_SYSTEMID"].ToString() + "','text':'" + parentTaskData.Rows[0]["WTS_SYSTEM"].ToString() + "'},'Work Area':{ 'value':'" + parentTaskData.Rows[0]["WorkAreaID"].ToString() + "','text':'" + parentTaskData.Rows[0]["WorkArea"].ToString() + "'}}";
            //dynamic fields = JsonConvert.DeserializeObject<Dictionary<string, object>>(filters);
            //bool saved = Filtering.SaveWorkFilters(module: "RQMT", filterModule: "RQMT", filters: fields, myData: false, xml: "");

            DataTable dtWorkArea   = MasterData.WorkArea_SystemList_Get(workAreaID: workAreaID);
            string    workAreaText = string.Empty;
            if (dtWorkArea != null && dtWorkArea.Rows.Count > 1)
            {
                workAreaText = dtWorkArea.Rows[1]["ApprovedPriority"].ToString() + " - " + dtWorkArea.Rows[1]["WorkArea"].ToString();
            }

            txtWorkArea.Text = HttpUtility.HtmlDecode(workAreaText.Replace("&nbsp;", "").Trim());

            DataTable dtAORs = AOR.AORTaskAORList_Get(TaskID: WorkItemID);
            if (dtAORs != null && dtAORs.Rows.Count > 0)
            {
                foreach (DataRow dr in dtAORs.Rows)
                {
                    if (dr["AORWorkTypeID"].ToString() == "1")
                    {
                        txtWorkloadAOR.Text    = dr["AORID"].ToString() + " (" + dr["Abbreviation"].ToString() + ") - " + dr["AORName"].ToString();
                        txtWorkloadAOR.ToolTip = txtWorkloadAOR.Text;
                    }
                    if (dr["AORWorkTypeID"].ToString() == "2")
                    {
                        txtReleaseAOR.Text    = dr["AORID"].ToString() + " (" + dr["Abbreviation"].ToString() + ") - " + dr["AORName"].ToString();
                        txtReleaseAOR.ToolTip = txtReleaseAOR.Text;
                        ParentRelAORReleaseID = dr["AORReleaseID"].ToString();
                    }
                }
            }

            ListItem item = ddlStatus.Items.FindByText("New");
            if (item != null)
            {
                item.Selected = true;
            }

            filterStatuses(true);

            if (wi != null)
            {
                int       maxSort = 0, maxBusRank = 0;
                DataTable dt = WorkloadItem.WorkItem_GetTaskList(wi.WorkItemID, 1);
                if (dt != null && dt.Rows.Count > 0)
                {
                    int sort = 0;
                    foreach (DataRow row in dt.Rows)
                    {
                        int.TryParse(row["SORT_ORDER"].ToString(), out sort);
                        if (sort > maxSort)
                        {
                            maxSort = sort;
                        }
                        int.TryParse(row["BusinessRank"].ToString(), out sort);
                        if (sort > maxBusRank)
                        {
                            maxBusRank = sort;
                        }
                    }
                }
                txtSortOrder.Text    = (maxSort + 1).ToString();
                txtBusinessRank.Text = (maxBusRank + 1).ToString();
            }

            item = ddlAssignedToRank.Items.FindByText("5 - Unprioritized Workload");
            if (item != null)
            {
                item.Selected = true;
            }
            txtBusinessRank.Text = "99";
        }
        LoadAORs();
    }