Beispiel #1
0
    private void loadGridData()
    {
        DataTable dt = null;

        if (_refreshData || Session["dtWorkItem_TestItem"] == null)
        {
            dt = WorkloadItem.WorkItem_TestItemList_Get(WorkItemID == 0 ? TestItemID : WorkItemID, this.SourceType);
            HttpContext.Current.Session["dtWorkItem_TestItem"] = dt;
        }
        else
        {
            dt = (DataTable)HttpContext.Current.Session["dtWorkItem_TestItem"];
        }

        if (dt != null)
        {
            if (dt.Rows.Count > 0)
            {
                spanRowCount.InnerText = (dt.Rows.Count - 1).ToString();
            }

            initializeColumnData(ref dt);
            this.DCC = dt.Columns;
            Page.ClientScript.RegisterArrayDeclaration("_dcc", JsonConvert.SerializeObject(DCC, Newtonsoft.Json.Formatting.None));
        }

        grdWorkItem.DataSource = dt;
        grdWorkItem.DataBind();
    }
Beispiel #2
0
    public static string ValidateTaskID(int taskID)
    {
        var result = WTSPage.CreateDefaultResult();

        DataTable dt = WorkloadItem.WorkItem_Get(taskID);

        if (dt != null && dt.Rows.Count > 0)
        {
            DataRow dr = dt.Rows[0];
            result["title"]  = dr["TITLE"] != DBNull.Value ? HttpUtility.HtmlEncode(dr["TITLE"].ToString()) : "";
            result["exists"] = "true";

            DataTable aorDT = AOR.AORTaskAORList_Get(taskID);

            if (aorDT != null && aorDT.Rows.Count > 0)
            {
                Dictionary <string, string> aors = new Dictionary <string, string>();
                for (int i = 0; i < aorDT.Rows.Count; i++)
                {
                    DataRow aorRow = aorDT.Rows[i];
                    aors.Add(aorRow["AORID"].ToString(), aorRow["AORName"].ToString());
                }

                result["aors"] = JsonConvert.SerializeObject(aors, Newtonsoft.Json.Formatting.None);
            }
        }
        else
        {
            result["exists"] = "false";
        }

        result["success"] = "true";

        return(JsonConvert.SerializeObject(result, Newtonsoft.Json.Formatting.None));
    }
Beispiel #3
0
    protected static bool itemChanged(ref WorkloadItem item, int statusID, int progress, int assignedID, int primaryID, int testerID)
    {
        bool changed = true;

        if (item.StatusID != statusID)
        {
            item.StatusID = statusID;
            changed       = true;
        }
        if (item.CompletionPercent != progress)
        {
            item.CompletionPercent = progress;
            changed = true;
        }
        if (item.AssignedResourceID != assignedID)
        {
            item.AssignedResourceID = assignedID;
            changed = true;
        }
        if (item.PrimaryResourceID != primaryID)
        {
            item.PrimaryResourceID = primaryID;
            changed = true;
        }
        if (item.TesterID != testerID)
        {
            item.TesterID = testerID;
            changed       = true;
        }

        return(changed);
    }
    public static string DeleteAttachment(int workItemID, int id)
    {
        Dictionary <string, string> result = new Dictionary <string, string>()
        {
            { "deleted", "" }, { "id", "" }, { "error", "" }
        };

        bool   deleted = false;
        string errorMsg = string.Empty, ids = string.Empty;

        try
        {
            deleted = WorkloadItem.Attachment_Delete(workItemID: workItemID, attachmentID: id, errorMsg: out errorMsg);
        }
        catch (Exception ex)
        {
            LogUtility.LogException(ex);
            errorMsg += ": " + ex.Message;
            deleted   = false;
        }

        result["deleted"] = deleted.ToString();
        result["id"]      = id.ToString();
        result["error"]   = errorMsg;

        return(JsonConvert.SerializeObject(result, Formatting.None));
    }
Beispiel #5
0
    private void init()
    {
        _dsOptions = WorkloadItem.GetAvailableOptions();

        grdWorkItem.GridHeaderRowDataBound += grdWorkItem_GridHeaderRowDataBound;
        grdWorkItem.GridRowDataBound       += grdWorkItem_GridRowDataBound;
        grdWorkItem.GridPageIndexChanging  += grdWorkItem_GridPageIndexChanging;
    }
Beispiel #6
0
    public static string SaveComments(int workItemID, dynamic comments)
    {
        Dictionary <string, string> result = new Dictionary <string, string>()
        {
            { "saved", "" }, { "ids", "" }, { "error", "" }
        };

        bool   saved = false;
        string errorMsg = string.Empty, ids = string.Empty;
        int    commentId = 0, parentCommentId = 0;
        string commentText = string.Empty;

        foreach (dynamic comment in comments)
        {
            commentId       = 0;
            parentCommentId = 0;
            //comment[0]=commentid, comment[1]=parentid, comment[2]=text
            try
            {
                commentText = comment[2].ToString();
                if (string.IsNullOrWhiteSpace(comment[0].ToString()) ||
                    !int.TryParse(comment[0].ToString(), out commentId))
                {
                    int.TryParse(comment[1].ToString(), out parentCommentId);
                    saved = WorkloadItem.WorkItem_Comment_Add(out commentId, out errorMsg, workItemID, parentCommentId, commentText);
                }
                else
                {
                    saved = WorkloadItem.WorkItem_Comment_Update(out errorMsg, commentId, commentText);
                }


                if (saved)
                {
                    ids += commentId.ToString() + ",";
                }
            }
            catch (Exception ex)
            {
                LogUtility.LogException(ex);
                errorMsg += ": " + ex.Message;
            }
        }

        ids = ids.TrimEnd(new char[] { ',' });
        if (ids.Length > 0)
        {
            saved = true;
            Workload.SendWorkloadEmail("WorkItem", false, workItemID);
        }

        result["saved"] = saved.ToString();
        result["ids"]   = ids;
        result["error"] = errorMsg;

        return(JsonConvert.SerializeObject(result, Formatting.None));
    }
Beispiel #7
0
    private void loadComments()
    {
        DataTable dt = WorkloadItem.WorkItem_GetCommentList(workItemID: this.WorkItemID);

        if (dt != null && dt.Rows.Count > 0)
        {
            Comment_Count = dt.Rows.Count;
        }

        Page.ClientScript.RegisterArrayDeclaration("arrComments", JsonConvert.SerializeObject(dt, Newtonsoft.Json.Formatting.None));
    }
Beispiel #8
0
    protected static DataTable loadFromData(bool includeArchive = false, bool myData = false)
    {
        DataTable dt = WorkloadItem.WorkItemList_Get(workRequestID: 0
                                                     , showArchived: includeArchive ? 1 : 0
                                                     , columnListOnly: 0
                                                     , myData: myData);

        HttpContext.Current.Session["MassChange_FromData"] = dt;

        return(dt);
    }
    private void loadWorkItem()
    {
        DataTable dt = WorkloadItem.WorkItem_Get(workItemID: this.WorkItemID);

        if (dt != null && dt.Rows.Count > 0)
        {
            this.labelWorkItemNumber.InnerText = dt.Rows[0]["WORKITEMID"].ToString();
            int.TryParse(dt.Rows[0]["WORKREQUESTID"].ToString(), out this.WorkRequestID);

            int.TryParse(dt.Rows[0]["Comment_Count"].ToString(), out this.Comment_Count);
            int.TryParse(dt.Rows[0]["Attachment_Count"].ToString(), out this.Attachment_Count);
            int.TryParse(dt.Rows[0]["WorkRequest_Attachment_Count"].ToString(), out this.WR_Attachment_Count);
        }
    }
    protected static DataTable GetWorkItems(int requestID = 0, int showArchived = 0, bool myData = false)
    {
        DataTable dt = null;

        try
        {
            dt = WorkloadItem.WorkItemList_Get(workRequestID: requestID, showArchived: showArchived, columnListOnly: 0, myData: myData);
        }
        catch (Exception ex)
        {
            LogUtility.LogException(ex);
            dt = null;
        }

        return(dt);
    }
    private void loadAttachments()
    {
        DataTable dt = WorkloadItem.WorkItem_GetAttachmentList(workItemID: this.WorkItemID);

        if (dt != null)
        {
            dc = dt.Columns;

            if (dt.Rows.Count > 0)
            {
                spanRowCount.InnerText     = dt.Rows.Count.ToString();
                gridAttachments.DataSource = dt;
                gridAttachments.DataBind();
            }
        }
    }
Beispiel #12
0
    public static string DeleteComments(int workItemID, dynamic arrCommentIDsToDelete)
    {
        Dictionary <string, string> result = new Dictionary <string, string>()
        {
            { "deleted", "" }, { "ids", "" }, { "error", "" }
        };

        bool   deleted = false;
        string errorMsg = string.Empty, ids = string.Empty;
        int    commentId = 0;

        foreach (dynamic id in arrCommentIDsToDelete)
        {
            commentId = 0;

            try
            {
                if (int.TryParse(id.ToString(), out commentId))
                {
                    deleted = WorkloadItem.WorkItem_Comment_Delete(out errorMsg, workItemID, commentId);

                    if (deleted)
                    {
                        ids += "," + commentId.ToString();
                    }
                }
            }
            catch (Exception ex)
            {
                LogUtility.LogException(ex);
                errorMsg += ": " + ex.Message;
                deleted   = false;
            }
        }

        ids = ids.TrimEnd(new char[] { ',' });
        if (ids.Length > 0)
        {
            deleted = true;
        }

        result["deleted"] = deleted.ToString();
        result["ids"]     = ids;
        result["error"]   = errorMsg;

        return(JsonConvert.SerializeObject(result, Formatting.None));
    }
    private void loadGridData(bool bind = true)
    {
        DataTable dtWork = null;

        if (_refreshData || Session["dtWorkItem_QM"] == null)
        {
            dtWork = WorkloadItem.WorkItemList_Get(workRequestID: 0, showArchived: _includeArchive ? 1 : 0, columnListOnly: 0, myData: _myData);
            HttpContext.Current.Session["dtWorkItem_QM"] = dtWork;
        }
        else
        {
            dtWork = (DataTable)HttpContext.Current.Session["dtWorkItem_QM"];
        }

        if (dtWork != null)
        {
            if (!ShowClosed)
            {
                dtWork.DefaultView.RowFilter = " STATUS NOT IN ('Closed', 'Approved/Closed') ";
                dtWork = dtWork.DefaultView.ToTable();
            }

            dtWork.Columns["TITLE"].SetOrdinal(dtWork.Columns["ItemID"].Ordinal + 1);
            dtWork.Columns["WORKREQUEST"].SetOrdinal(dtWork.Columns["TITLE"].Ordinal + 1);
            spanRowCount.InnerText = dtWork.Rows.Count.ToString();

            InitializeColumnData_WorkItem(ref dtWork);
            dtWork.AcceptChanges();

            using (DataTable dtTemp = dtWork.Clone())
            {
                this.DCC = dtTemp.Columns;
                string json = JsonConvert.SerializeObject(DCC, Formatting.None);
                Page.ClientScript.RegisterArrayDeclaration("_dcc", json);
            }
        }

        if (_pageIndex > 0)
        {
            grdWorkload.PageIndex = _pageIndex;
        }
        grdWorkload.DataSource = dtWork;
        if (bind)
        {
            grdWorkload.DataBind();
        }
    }
    private DataTable LoadData()
    {
        DataTable dt = new DataTable();

        if (IsPostBack && Session["dtAORAddSubTask"] != null)
        {
            dt = (DataTable)Session["dtAORAddSubTask"];
        }
        else
        {
            dt = WorkloadItem.WorkItem_GetTaskList(workItemID: TaskID, showArchived: 0, showBacklog: false, statusList: SelectedStatuses, systemList: SelectedSystems);
        }

        // apply status filters

        Session["dtAORAddSubTask"] = dt;

        return(dt);
    }
    private void loadWorkConcerns()
    {
        DataTable dt = null;

        try
        {
            dt = WorkloadItem.Concerns_Get();
        }
        catch (Exception ex)
        {
            LogUtility.LogException(ex);
            dt = null;
        }

        if (dt != null)
        {
            this.DCC = dt.Columns;
        }

        gridConcern.DataSource = dt;
        gridConcern.DataBind();
    }
Beispiel #16
0
    public static string DeleteItem(int itemId)
    {
        Dictionary <string, string> result = new Dictionary <string, string>()
        {
            { "id", itemId.ToString() }
            , { "exists", "" }
            , { "deleted", "" }
            , { "error", "" }
        };
        bool   exists = false, deleted = false;
        string errorMsg = string.Empty;

        try
        {
            //delete
            if (itemId == 0)
            {
                errorMsg = "You must specify an item to delete.";
            }
            else
            {
                deleted = WorkloadItem.WorkItem_TestItem_Delete(itemId, out exists, out errorMsg);
            }
        }
        catch (Exception ex)
        {
            LogUtility.LogException(ex);
            deleted  = false;
            errorMsg = ex.Message;
        }

        result["exists"]  = exists.ToString();
        result["deleted"] = deleted.ToString();
        result["error"]   = errorMsg;

        return(JsonConvert.SerializeObject(result, Formatting.None));
    }
Beispiel #17
0
    private void loadTasks()
    {
        DataTable dt = null;

        if (_refreshData || Session["dtTask"] == null)
        {
            dt = WorkloadItem.WorkItem_GetTaskList(workItemID: this.WorkItemID);
            HttpContext.Current.Session["dtTask"] = dt;
        }
        else
        {
            dt = (DataTable)HttpContext.Current.Session["dtWorkItem"];
        }

        if (dt != null)
        {
            dt.Columns["AssignedResource"].SetOrdinal(dt.Columns["ACTUALENDDATE"].Ordinal);
            dt.Columns["Status"].SetOrdinal(dt.Columns["COMPLETIONPERCENT"].Ordinal);
            this.DCC = dt.Columns;
        }

        gridTask.DataSource = dt;
        gridTask.DataBind();
    }
Beispiel #18
0
        public override void Update(Workload entity)
        {
            Workload persistent = this.Load(entity.ID);

            this.DbContext.Entry(persistent).CurrentValues.SetValues(entity);
            this.DbContext.Entry(persistent).State = EntityState.Modified;

            foreach (WorkloadItem item in persistent.Items.Where(s => entity.Items.All(cs => cs.Url != s.Url)).ToArray())
            {
                persistent.Items.Remove(item);
                this.DbContext.Entry(item).State = EntityState.Deleted;
            }

            foreach (WorkloadItem item in entity.Items.Where(s => persistent.Items.All(cs => cs.Url != s.Url)).ToArray())
            {
                persistent.Items.Add(item);
            }

            foreach (WorkloadItem item in persistent.Items)
            {
                WorkloadItem currentValues = entity.Items.Single(s => s.Url == item.Url);
                this.DbContext.Entry(item).CurrentValues.SetValues(currentValues);
            }
        }
Beispiel #19
0
    public static string LoadExistingValues(string entityType, string idField, string columnName, string textField, string filterField, string existingValueFilter)
    {
        Dictionary <string, string> result = new Dictionary <string, string>()
        {
            { "loaded", "false" }
            , { "CurrentCount", "0" }
            , { "CurrentOptions", "" }
            , { "NewCount", "0" }
            , { "NewOptions", "" }
            , { "error", "" }
        };
        bool      loaded = false;
        int       currentCount = 0, newCount = 0;
        string    errorMsg = string.Empty;
        int       AOR_ID = 0;
        DataTable dt = null, dtCurrentOptions = null, dtNewValues = null;

        try
        {
            switch (entityType.ToUpper())
            {
            case "AOR":
                dt = AOR.AORList_Get(AORID: AOR_ID);
                break;

            case "CR":
                dt = AOR.AORCRList_Get(AORID: AOR_ID, AORReleaseID: 0, CRID: 0);
                break;

            case "PRIMARYTASK":
                dt = AOR.AORTaskList_Get(AORID: AOR_ID, AORReleaseID: 0);
                break;

            case "SUBTASK":
                dt = WorkloadItem.WorkItem_GetTaskList(workItemID: 0, showArchived: 0, showBacklog: false);
                break;
            }
            if (existingValueFilter.Length > 0)
            {
                dt.DefaultView.RowFilter = filterField + " IN (" + existingValueFilter + ")";
            }
            if (entityType.ToUpper() == "AOR")
            {
                dt.DefaultView.RowFilter = "[Workload Allocation Archive] IN (False)";
            }
            dtCurrentOptions = entityType.ToUpper() == "AOR" ? dt.DefaultView.ToTable(distinct: true, columnNames: new string[] { idField, columnName, "Workload Allocation Archive" }) : dt.DefaultView.ToTable(distinct: true, columnNames: new string[] { idField, columnName });
            if (dtCurrentOptions != null)
            {
                dtCurrentOptions.Columns[idField].ColumnName    = "valueField";
                dtCurrentOptions.Columns[columnName].ColumnName = "textField";
            }
            dtCurrentOptions.DefaultView.Sort = "textField";
            dtCurrentOptions = dtCurrentOptions.DefaultView.ToTable();
            currentCount     = dtCurrentOptions.Rows.Count;

            try
            {
                switch (entityType.ToUpper())
                {
                case "AOR":
                    switch (columnName.ToUpper())
                    {
                    case "CURRENT RELEASE":
                        dtNewValues = MasterData.ProductVersionList_Get(includeArchive: false);
                        if (dtNewValues != null)
                        {
                            dtNewValues = dtNewValues.DefaultView.ToTable();
                            dtNewValues.Columns["ProductVersionID"].ColumnName = "valueField";
                            dtNewValues.Columns["ProductVersion"].ColumnName   = "textField";
                        }

                        break;

                    case "WORKLOAD ALLOCATION":
                        dtNewValues = MasterData.WorkloadAllocationList_Get(includeArchive: 0);
                        if (dtNewValues != null)
                        {
                            dtNewValues = dtNewValues.DefaultView.ToTable();
                            dtNewValues.Columns["WorkloadAllocationID"].ColumnName = "valueField";
                            dtNewValues.Columns["WorkloadAllocation"].ColumnName   = "textField";
                        }

                        break;

                    default:
                        dtNewValues = null;
                        break;
                    }
                    break;

                case "CR":
                    switch (columnName.ToUpper())
                    {
                    case "CONTRACT":
                        dtNewValues = MasterData.ContractList_Get(includeArchive: false);
                        if (dtNewValues != null)
                        {
                            dtNewValues = dtNewValues.DefaultView.ToTable();
                            dtNewValues.Columns["ContractID"].ColumnName = "valueField";
                            dtNewValues.Columns["Contract"].ColumnName   = "textField";
                        }

                        break;

                    case "STATUS":
                        dtNewValues = MasterData.StatusList_Get(includeArchive: false);
                        if (dtNewValues != null)
                        {
                            dtNewValues.DefaultView.RowFilter = "StatusType = 'AORCR'";
                            dtNewValues = dtNewValues.DefaultView.ToTable();
                            dtNewValues.Columns["StatusID"].ColumnName = "valueField";
                            dtNewValues.Columns["Status"].ColumnName   = "textField";
                        }
                        break;

                    case "WEBSYSTEM":
                        dtNewValues = MasterData.SystemList_Get(includeArchive: false);
                        if (dtNewValues != null)
                        {
                            dtNewValues = dtNewValues.DefaultView.ToTable();
                            dtNewValues.Columns["WTS_SYSTEMID"].ColumnName = "valueField";
                            dtNewValues.Columns["WTS_SYSTEM"].ColumnName   = "textField";
                        }

                        break;

                    default:
                        dtNewValues = null;
                        break;
                    }
                    break;

                case "PRIMARYTASK":
                    switch (columnName.ToUpper())
                    {
                    case "ASSIGNED TO":
                        dtNewValues = UserManagement.LoadUserList(organizationId: 0, excludeDeveloper: false, loadArchived: false, userNameSearch: "");
                        if (dtNewValues != null)
                        {
                            dtNewValues = dtNewValues.DefaultView.ToTable();
                            dtNewValues.Columns["WTS_RESOURCEID"].ColumnName = "valueField";
                            dtNewValues.Columns["UserName"].ColumnName       = "textField";
                        }

                        break;

                    case "PRIMARY RESOURCE":
                        dtNewValues = UserManagement.LoadUserList(organizationId: 0, excludeDeveloper: false, loadArchived: false, userNameSearch: "");
                        if (dtNewValues != null)
                        {
                            dtNewValues = dtNewValues.DefaultView.ToTable();
                            dtNewValues.Columns["WTS_RESOURCEID"].ColumnName = "valueField";
                            dtNewValues.Columns["UserName"].ColumnName       = "textField";
                        }

                        break;

                    case "PRIORITY":
                        dtNewValues = MasterData.PriorityList_Get(includeArchive: false);
                        if (dtNewValues != null)
                        {
                            dtNewValues.DefaultView.RowFilter = "PriorityType = 'Work Item'";
                            dtNewValues = dtNewValues.DefaultView.ToTable();
                            dtNewValues.Columns["PriorityID"].ColumnName = "valueField";
                            dtNewValues.Columns["Priority"].ColumnName   = "textField";
                        }

                        break;

                    case "PRODUCTION STATUS":
                        dtNewValues = MasterData.StatusList_Get(includeArchive: false);
                        if (dtNewValues != null)
                        {
                            dtNewValues.DefaultView.RowFilter = "StatusType = 'Production'";
                            dtNewValues = dtNewValues.DefaultView.ToTable();
                            dtNewValues.Columns["StatusID"].ColumnName = "valueField";
                            dtNewValues.Columns["Status"].ColumnName   = "textField";
                        }

                        break;

                    case "STATUS":
                        dtNewValues = MasterData.StatusList_Get(includeArchive: false);
                        if (dtNewValues != null)
                        {
                            dtNewValues.DefaultView.RowFilter = "StatusType = 'Work'";
                            dtNewValues = dtNewValues.DefaultView.ToTable();
                            dtNewValues.Columns["StatusID"].ColumnName = "valueField";
                            dtNewValues.Columns["Status"].ColumnName   = "textField";
                        }

                        break;

                    case "PRODUCT VERSION":
                        dtNewValues = MasterData.ProductVersionList_Get(includeArchive: false);
                        if (dtNewValues != null)
                        {
                            dtNewValues = dtNewValues.DefaultView.ToTable();
                            dtNewValues.Columns["ProductVersionID"].ColumnName = "valueField";
                            dtNewValues.Columns["ProductVersion"].ColumnName   = "textField";
                        }

                        break;

                    case "SYSTEM(TASK)":
                        dtNewValues = MasterData.SystemList_Get(includeArchive: false);
                        if (dtNewValues != null)
                        {
                            dtNewValues = dtNewValues.DefaultView.ToTable();
                            dtNewValues.Columns["WTS_SYSTEMID"].ColumnName = "valueField";
                            dtNewValues.Columns["WTS_SYSTEM"].ColumnName   = "textField";
                        }

                        break;
                    //case "PERCENT COMPLETE":
                    //    dtNewValues = MasterData.ProductVersionList_Get(includeArchive: false);
                    //    if (dtNewValues != null)
                    //    {
                    //        dtNewValues = dtNewValues.DefaultView.ToTable();
                    //        dtNewValues.Columns["ProductVersionID"].ColumnName = "valueField";
                    //        dtNewValues.Columns["ProductVersion"].ColumnName = "textField";
                    //    }

                    //break;

                    default:
                        dtNewValues = null;
                        break;
                    }
                    break;

                case "SUBTASK":
                    switch (columnName.ToUpper())
                    {
                    case "ASSIGNEDRESOURCE":
                        dtNewValues = UserManagement.LoadUserList(organizationId: 0, excludeDeveloper: false, loadArchived: false, userNameSearch: "");
                        if (dtNewValues != null)
                        {
                            dtNewValues = dtNewValues.DefaultView.ToTable();
                            dtNewValues.Columns["WTS_RESOURCEID"].ColumnName = "valueField";
                            dtNewValues.Columns["UserName"].ColumnName       = "textField";
                        }

                        break;

                    case "PRIMARY RESOURCE":
                        dtNewValues = UserManagement.LoadUserList(organizationId: 0, excludeDeveloper: false, loadArchived: false, userNameSearch: "");
                        if (dtNewValues != null)
                        {
                            dtNewValues = dtNewValues.DefaultView.ToTable();
                            dtNewValues.Columns["WTS_RESOURCEID"].ColumnName = "valueField";
                            dtNewValues.Columns["UserName"].ColumnName       = "textField";
                        }

                        break;

                    case "PRIORITY":
                        dtNewValues = MasterData.PriorityList_Get(includeArchive: false);
                        if (dtNewValues != null)
                        {
                            dtNewValues.DefaultView.RowFilter = "PriorityType = 'Work Item'";
                            dtNewValues = dtNewValues.DefaultView.ToTable();
                            dtNewValues.Columns["PriorityID"].ColumnName = "valueField";
                            dtNewValues.Columns["Priority"].ColumnName   = "textField";
                        }

                        break;

                    case "PRODUCTION STATUS":
                        dtNewValues = MasterData.StatusList_Get(includeArchive: false);
                        if (dtNewValues != null)
                        {
                            dtNewValues.DefaultView.RowFilter = "StatusType = 'Production'";
                            dtNewValues = dtNewValues.DefaultView.ToTable();
                            dtNewValues.Columns["StatusID"].ColumnName = "valueField";
                            dtNewValues.Columns["Status"].ColumnName   = "textField";
                        }

                        break;

                    case "STATUS":
                        dtNewValues = MasterData.StatusList_Get(includeArchive: false);
                        if (dtNewValues != null)
                        {
                            dtNewValues.DefaultView.RowFilter = "StatusType = 'Work'";
                            dtNewValues = dtNewValues.DefaultView.ToTable();
                            dtNewValues.Columns["StatusID"].ColumnName = "valueField";
                            dtNewValues.Columns["Status"].ColumnName   = "textField";
                        }

                        break;

                    case "PRODUCT VERSION":
                        dtNewValues = MasterData.ProductVersionList_Get(includeArchive: false);
                        if (dtNewValues != null)
                        {
                            dtNewValues = dtNewValues.DefaultView.ToTable();
                            dtNewValues.Columns["ProductVersionID"].ColumnName = "valueField";
                            dtNewValues.Columns["ProductVersion"].ColumnName   = "textField";
                        }

                        break;

                    case "SYSTEM(TASK)":
                        dtNewValues = MasterData.SystemList_Get(includeArchive: false);
                        if (dtNewValues != null)
                        {
                            dtNewValues = dtNewValues.DefaultView.ToTable();
                            dtNewValues.Columns["WTS_SYSTEMID"].ColumnName = "valueField";
                            dtNewValues.Columns["WTS_SYSTEM"].ColumnName   = "textField";
                        }

                        break;
                    //case "PERCENT COMPLETE":
                    //    dtNewValues = MasterData.ProductVersionList_Get(includeArchive: false);
                    //    if (dtNewValues != null)
                    //    {
                    //        dtNewValues = dtNewValues.DefaultView.ToTable();
                    //        dtNewValues.Columns["ProductVersionID"].ColumnName = "valueField";
                    //        dtNewValues.Columns["ProductVersion"].ColumnName = "textField";
                    //    }

                    //break;

                    default:
                        dtNewValues = null;
                        break;
                    }
                    break;
                }
            }
            catch (Exception ex)
            {
                LogUtility.LogException(ex);
                dtNewValues = null;
            }

            if (dtNewValues != null && dtNewValues.Rows.Count > 0)
            {
                dtNewValues.DefaultView.Sort = "textField";
                dtNewValues = dtNewValues.DefaultView.ToTable(distinct: true, columnNames: new string[] { "valueField", "textField" });
                if (dtNewValues != null)
                {
                    newCount = dtNewValues.Rows.Count;
                }
            }

            loaded = true;
        }
        catch (Exception ex)
        {
            LogUtility.LogException(ex);
            loaded       = false;
            currentCount = 0;
            errorMsg     = ex.Message;
        }

        result["loaded"]       = loaded.ToString();
        result["CurrentCount"] = currentCount.ToString();
        result["NewCount"]     = newCount.ToString();
        result["error"]        = errorMsg;
        if (dtCurrentOptions != null)
        {
            result["CurrentOptions"] = JsonConvert.SerializeObject(dtCurrentOptions, Formatting.None);
        }
        if (dtCurrentOptions != null)
        {
            result["NewOptions"] = JsonConvert.SerializeObject(dtNewValues, Formatting.None);
        }

        return(JsonConvert.SerializeObject(result, Formatting.None));
    }
Beispiel #20
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();
    }
Beispiel #21
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));
    }
Beispiel #22
0
    private void loadTask()
    {
        WorkItem_Task task = new WorkItem_Task(taskID: this.WorkItem_TaskID);

        if (task == null || !task.Load())
        {
            return;
        }

        txtWorkloadNumber.Text = string.Format("{0} - {1}", task.WorkItemID.ToString(), task.Task_Number.ToString());
        WTSUtility.SelectDdlItem(ddlPriority, task.PriorityID.ToString(), task.Priority.ToString());
        txtParentTitle.Text = HttpUtility.HtmlDecode(Uri.UnescapeDataString(task.ParentTitle.Replace("&nbsp;", "").Trim()));
        txtTitle.Text       = HttpUtility.HtmlDecode(Uri.UnescapeDataString(task.Title.Replace("&nbsp;", "").Trim()));

        ListItem li = null;

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

            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, task.PrimaryResourceID.ToString(), task.PrimaryResource.ToString());
        WTSUtility.SelectDdlItem(ddlSecondaryResource, task.SecondaryResourceID.ToString(), task.SecondaryResource.ToString());
        WTSUtility.SelectDdlItem(ddlPrimaryBusResource, task.PrimaryBusResourceID.ToString(), task.PrimaryBusResource.ToString());
        WTSUtility.SelectDdlItem(ddlSecondaryBusResource, task.SecondaryBusResourceID.ToString(), task.SecondaryBusResource.ToString());
        txtStartDate_Planned.Text = task.EstimatedStartDate;
        txtStartDate_Actual.Text  = task.ActualStartDate;
        txtEndDate_Actual.Text    = task.ActualEndDate;
        WTSUtility.SelectDdlItem(ddlHours_Planned, task.EstimatedEffortID.ToString(), task.PlannedHours.ToString());
        WTSUtility.SelectDdlItem(ddlHours_Actual, task.ActualEffortID.ToString(), task.ActualHours.ToString());
        WTSUtility.SelectDdlItem(ddlPercentComplete, task.CompletionPercent.ToString(), task.CompletionPercent.ToString());
        WTSUtility.SelectDdlItem(ddlStatus, task.StatusID.ToString(), task.Status);

        filterStatuses(false);

        txtBusinessRank.Text          = task.BusinessRank.ToString();
        txtSortOrder.Text             = task.Sort_Order.ToString();
        textAreaDescription.InnerHtml = task.Description;
        txtSRNumber.Text = task.SRNumber.ToString();

        WTSUtility.SelectDdlItem(ddlAssignedToRank, task.AssignedToRankID.ToString(), "");
        WTSUtility.SelectDdlItem(ddlProductVersion, task.ProductVersionID.ToString(), task.ProductVersion.ToString());
        WTSUtility.SelectDdlItem(ddlWorkItemType, task.WorkItemTypeID.ToString(), task.WorkItemType.ToString());
        this.ProductVersionID       = task.ProductVersionID;
        this.lblProductVersion.Text = task.ProductVersion;
        this.SystemID             = task.SystemID;
        this.UnclosedSRTasks      = task.UnclosedSRTasks;
        txtDateNeeded.Text        = task.NeedDate;
        chkBusinessReview.Checked = task.BusinessReview;

        if (!IsNew)
        {
            this.labelCreated.Text = task.CreatedBy + " - " + task.CreatedDate;
            this.labelUpdated.Text = task.UpdatedBy + " - " + task.UpdatedDate;
        }

        DataTable parentTaskData = WorkloadItem.WorkItem_Get(workItemID: WorkItemID);

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

        txtSystemTask.Attributes["WTS_SYSTEMID"] = systemID.ToString();
        txtWorkArea.Attributes["WorkAreaID"]     = workAreaID.ToString();

        this.labelTotalDaysOpened.Text         = task.TotalDaysOpened.ToString();
        this.labelTotalBusinessDaysOpened.Text = task.TotalBusinessDaysOpened.ToString();
        this.labelInProgressDate.Text          = (String.IsNullOrEmpty(task.InProgressDate.ToString())) ? null : task.InProgressDate.Value.ToShortDateString();
        this.labelInProgressTime.Text          = (String.IsNullOrEmpty(task.InProgressDate.ToString())) ? null : task.InProgressDate.Value.ToShortTimeString();
        this.labelDeployedDate.Text            = (String.IsNullOrEmpty(task.DeployedDate.ToString())) ? null : task.DeployedDate.Value.ToShortDateString();
        this.labelDeployedTime.Text            = (String.IsNullOrEmpty(task.DeployedDate.ToString())) ? null : task.DeployedDate.Value.ToShortTimeString();
        this.labelReadyForReviewDate.Text      = (String.IsNullOrEmpty(task.ReadyForReviewDate.ToString())) ? null : task.ReadyForReviewDate.Value.ToShortDateString();
        this.labelReadyForReviewTime.Text      = (String.IsNullOrEmpty(task.ReadyForReviewDate.ToString())) ? null : task.ReadyForReviewDate.Value.ToShortTimeString();
        this.labelClosedDate.Text              = (String.IsNullOrEmpty(task.ClosedDate.ToString())) ? null : task.ClosedDate.Value.ToShortDateString();
        this.labelClosedTime.Text              = (String.IsNullOrEmpty(task.ClosedDate.ToString())) ? null : task.ClosedDate.Value.ToShortTimeString();
        this.labelTotalDaysInProgress.Text     = task.TotalDaysInProgress.ToString();
        this.labelTotalDaysDeployed.Text       = task.TotalDaysDeployed.ToString();
        this.labelTotalDaysReadyForReview.Text = task.TotalDaysReadyForReview.ToString();
        this.labelTotalDaysClosed.Text         = task.TotalDaysClosed.ToString();

        DataTable dtWorkArea   = MasterData.WorkArea_SystemList_Get(workAreaID: workAreaID);
        string    workAreaText = string.Empty;

        if (dtWorkArea != null && dtWorkArea.Rows.Count > 1)
        {
            workAreaText = dtWorkArea.Rows[dtWorkArea.Rows.Count - 1]["ApprovedPriority"].ToString() + " - " + dtWorkArea.Rows[dtWorkArea.Rows.Count - 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();
                }
            }
        }
    }
Beispiel #23
0
    public static string SaveChanges(string fieldName, string fromValue, string toValue, bool includeArchive, bool myData)
    {
        Dictionary <string, string> result = new Dictionary <string, string>()
        {
            { "saved", "false" }
            , { "Count", "0" }
            , { "error", "" }
        };
        bool   saved = false, proceed = true;
        int    count    = 0;
        string errorMsg = string.Empty;

        try
        {
            if (fieldName.Length == 0)
            {
                errorMsg = "No field to update was specified.";
                proceed  = false;
                saved    = false;
                count    = 0;
            }
            if (toValue.Length == 0)
            {
                errorMsg = "No new value was specified.";
                proceed  = false;
                saved    = false;
                count    = 0;
            }

            if (proceed)
            {
                if (fromValue.Length == 0)
                {
                    //this is okay, but make sure procedure works with empty old value
                    string msg = "";
                }

                //save the data
                count = WorkloadItem.WorkItem_MassChange(fieldName: fieldName
                                                         , fromValue: fromValue
                                                         , toValue: toValue
                                                         , includeArchive: includeArchive
                                                         , myData: myData
                                                         , errorMsg: out errorMsg);
                if (count > 0)
                {
                    saved = true;
                }
            }
        }
        catch (Exception ex)
        {
            LogUtility.LogException(ex);
            saved    = false;
            count    = 0;
            errorMsg = ex.Message;
        }

        result["saved"] = saved.ToString();
        result["Count"] = count.ToString();
        result["error"] = errorMsg;

        return(JsonConvert.SerializeObject(result, Formatting.None));
    }
    protected void btnSubmit_Click(Object sender, EventArgs e)
    {
        bool   exists                = false;
        int    newAttachmentID       = 0;
        int    newModuleAttachmentID = 0;
        bool   saved    = false;
        string errorMsg = string.Empty;

        var dtfilesAttr = JsonConvert.DeserializeObject <DataTable>(inpHide.Value);

        if (this.Edit || (this.fileUpload1.HasFile))
        {
            if (!this.Edit)                  //adding an attachment, not editing one
            {
                int i = 0;
                foreach (HttpPostedFile uploadedFile in fileUpload1.PostedFiles)
                {
                    string   fileName       = "";
                    string   fileExtension  = "";
                    string   strFileTypeID  = "";
                    string   strDescription = "";
                    int      intAttachType  = 0;
                    Stream   fStream        = uploadedFile.InputStream;
                    int      fileLength     = uploadedFile.ContentLength;
                    byte[]   fByte          = new byte[fileLength];
                    string   fileType       = uploadedFile.ContentType;
                    string[] splitFileName  = fileName.Split('\\');
                    fileName = splitFileName[splitFileName.Length - 1];

                    fStream.Read(fByte, 0, fByte.Length);
                    fStream.Close();

                    if (fileUpload1.PostedFiles.Count > 1)
                    {
                        fileName      = dtfilesAttr.Rows[i]["name"].ToString();
                        strFileTypeID = dtfilesAttr.Rows[i]["type"].ToString();
                        int.TryParse(strFileTypeID, out intAttachType);
                        strDescription = dtfilesAttr.Rows[i]["description"].ToString();
                    }
                    else
                    {
                        fileName      = uploadedFile.FileName;
                        strFileTypeID = ddlAttachmentType.SelectedValue;
                        int.TryParse(ddlAttachmentType.SelectedValue, out intAttachType);
                        strDescription = txtDescription.Text;
                    }

                    splitFileName = fileName.Split('\\');
                    fileName      = splitFileName[splitFileName.Length - 1];
                    splitFileName = fileName.Split('.');
                    fileExtension = splitFileName[splitFileName.Length - 1];

                    switch (Module.ToUpper())
                    {
                    case "TASK":
                        saved = WorkItem_Task.Attachment_Add(WorkItemTaskID: this.workItemTaskID
                                                             , attachmentTypeID: intAttachType
                                                             , fileName: fileName
                                                             , title: strDescription
                                                             , description: strDescription
                                                             , fileData: fByte
                                                             , extensionID: 0
                                                             , newAttachmentID: out newAttachmentID
                                                             , newWorkItemAttachmentID: out newModuleAttachmentID
                                                             , errorMsg: out errorMsg);
                        break;

                    case "WORKITEM":
                        saved = WorkloadItem.Attachment_Add(workItemID: this.WorkItemID
                                                            , attachmentTypeID: intAttachType
                                                            , fileName: fileName
                                                            , title: strDescription
                                                            , description: strDescription
                                                            , fileData: fByte
                                                            , extensionID: 0
                                                            , newAttachmentID: out newAttachmentID
                                                            , newWorkItemAttachmentID: out newModuleAttachmentID
                                                            , errorMsg: out errorMsg);
                        break;

                    case "WORKREQUEST":
                        saved = WorkRequest.Attachment_Add(workRequestID: this.WorkRequestID
                                                           , attachmentTypeID: intAttachType
                                                           , fileName: fileName
                                                           , title: strDescription
                                                           , description: strDescription
                                                           , fileData: fByte
                                                           , extensionID: 0
                                                           , newAttachmentID: out newAttachmentID
                                                           , newWorkItemAttachmentID: out newModuleAttachmentID
                                                           , errorMsg: out errorMsg);
                        break;

                    case "MEETING":
                        saved = AOR.AORMeetingInstanceAttachment_Save(0, AORMeetingInstanceID, 0, intAttachType, fileName, strDescription, strDescription, fByte, out newAttachmentID);
                        break;

                    case "RQMTDESC":
                        saved = RQMT.RQMTDescriptionAttachment_Save(0, RQMTDescriptionID, 0, intAttachType, fileName, strDescription, fByte, out newAttachmentID);
                        break;

                    case "MDIMAGE":
                        Dictionary <string, string> result = new Dictionary <string, string> {
                            { "saved", "false" }, { "exists", "false" }, { "newID", "0" }, { "error", "" }
                        };
                        string[] allowedExtensions = new string[] { ".jpg", ".jpeg", ".png", ".gif" };
                        string   extension         = Path.GetExtension(fileName).ToLower();

                        if (!allowedExtensions.Contains(extension))
                        {
                            continue;
                        }

                        result   = MasterData.Image_Add(ImageName: strDescription, Description: strDescription, FileName: fileName, FileData: fByte);
                        saved    = result["saved"].ToUpper() == "TRUE";
                        errorMsg = result["error"];
                        break;

                    case "NEWS":
                        saved = WTSNews.NewsAttachment_Add(newsID: this.NewsID
                                                           , attachmentTypeID: (int)AttachmentTypeEnum.News
                                                           , fileName: fileName
                                                           , title: strDescription
                                                           , description: strDescription
                                                           , fileData: fByte
                                                           , extensionID: 0
                                                           , newAttachmentID: out newAttachmentID
                                                           //, newWorkItemAttachmentID: out newModuleAttachmentID
                                                           , errorMsg: out errorMsg);
                        break;

                    default:
                        saved = WTSData.Attachment_Add(attachmentTypeID: intAttachType
                                                       , fileName: fileName
                                                       , title: strDescription
                                                       , description: strDescription
                                                       , fileData: fByte
                                                       , extensionID: 0
                                                       , newID: out newAttachmentID
                                                       , errorMsg: out errorMsg);
                        break;
                    }

                    i += 1;
                }
            }
            else
            {
                string fileName = "";
                fileName = fileUpload1.FileName;

                //Stream fStream = fileUpload1.PostedFile.InputStream;
                //int fileLength = fileUpload1.PostedFile.ContentLength;

                //byte[] fByte = new byte[fileLength];

                string fileType = string.Empty;
                if (fileUpload1.PostedFile != null)
                {
                    fileName = fileUpload1.PostedFile.FileName;
                    fileType = fileUpload1.PostedFile.ContentType;
                }
                string[] splitFileName = fileName.Split('\\');
                fileName      = splitFileName[splitFileName.Length - 1];
                splitFileName = fileName.Split('.');

                string fileExtension = splitFileName[splitFileName.Length - 1];
                //fStream.Read(fByte, 0, fByte.Length);
                //fStream.Close();

                if (fileName == "")
                {
                    fileName = this.OriginalFileName;
                }

                string attachmentType = ddlAttachmentType.SelectedValue;
                if (Module == "News")
                {
                    attachmentType = ((int)AttachmentTypeEnum.News).ToString();
                }

                saved = WTSData.Attachment_Update(attachmentID: this.AttachmentID
                                                  , attachmentTypeID: int.Parse(attachmentType)
                                                  , fileName: fileName
                                                  , title: txtDescription.Text
                                                  , description: txtDescription.Text
                                                  //, fileData: fByte
                                                  , exists: out exists
                                                  , errorMsg: out errorMsg);
            }

            if (!saved || errorMsg.Length > 0)
            {
                lblError.Text = errorMsg;
            }
            else
            {
                if (!exists)
                {
                    HasUploaded = 1;
                }
                else
                {
                    AlreadyExists = 1;
                }

                if (Module.ToUpper() == "WORKITEM")
                {
                    Workload.SendWorkloadEmail("WorkItem", false, this.WorkItemID);
                }
            }
        }
    }
    private static WorkloadItem parseDataRow(WorkloadItem wi, DataTable dt, DataRow dr)
    {
        int tempId = 0;

        //HttpServerUtility server = HttpContext.Current.Server;

        try
        {
            if (dt.Columns.Contains("WORKREQUEST"))
            {
                wi.WorkRequestID = int.TryParse(dr["WORKREQUEST"].ToString(), out tempId) ? tempId : 0;
            }
            if (dt.Columns.Contains("WORKITEMTYPE"))
            {
                wi.WorkItemTypeID = int.TryParse(dr["WORKITEMTYPE"].ToString(), out tempId) ? tempId : 0;
            }
            if (dt.Columns.Contains("Websystem"))
            {
                wi.WTS_SystemID = int.TryParse(dr["Websystem"].ToString(), out tempId) ? tempId : 0;
            }
            if (dt.Columns.Contains("ALLOCATION"))
            {
                wi.AllocationID = int.TryParse(dr["ALLOCATION"].ToString(), out tempId) ? tempId : 0;
            }
            if (dt.Columns.Contains("Version"))
            {
                wi.ProductVersionID = int.TryParse(dr["Version"].ToString(), out tempId) ? tempId : 0;
            }
            if (dt.Columns.Contains("Production"))
            {
                wi.Production = int.TryParse(dr["Production"].ToString(), out tempId) ? (tempId == 1) : false;
            }
            if (dt.Columns.Contains("PRIORITY"))
            {
                wi.PriorityID = int.TryParse(dr["PRIORITY"].ToString(), out tempId) ? tempId : 0;
            }
            if (dt.Columns.Contains("Primary_Developer"))
            {
                wi.PrimaryResourceID = int.TryParse(dr["Primary_Developer"].ToString(), out tempId) ? tempId : 0;
            }
            if (dt.Columns.Contains("Assigned"))
            {
                wi.AssignedResourceID = int.TryParse(dr["Assigned"].ToString(), out tempId) ? tempId : 0;
            }
            if (dt.Columns.Contains("WorkType"))
            {
                wi.WorkTypeID = int.TryParse(dr["WorkType"].ToString(), out tempId) ? tempId : 0;
            }
            if (dt.Columns.Contains("STATUS"))
            {
                wi.StatusID = int.TryParse(dr["STATUS"].ToString(), out tempId) ? tempId : 0;
            }
            if (dt.Columns.Contains("Progress"))
            {
                wi.CompletionPercent = int.TryParse(dr["Progress"].ToString(), out tempId) ? tempId : 0;
            }
            if (dt.Columns.Contains("ARCHIVE"))
            {
                wi.Archive = int.TryParse(dr["ARCHIVE"].ToString(), out tempId) ? (tempId == 1) : false;
            }
            if (dt.Columns.Contains("ProductionStatus"))
            {
                wi.ProductionStatusID = int.TryParse(dr["ProductionStatus"].ToString(), out tempId) ? tempId : 0;
            }
        }
        catch (Exception ex)
        {
            LogUtility.LogException(ex);
            return(null);
        }

        return(wi);
    }
    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));
    }
Beispiel #27
0
    public static string LoadEntityFields(string entityType)
    {
        DataTable            dtNew = new DataTable();
        DataColumnCollection DCC;
        Dictionary <string, GridColsColumn> _gridColumns = new Dictionary <string, GridColsColumn>();
        GridCols  _columnData = new GridCols();
        DataTable dt = new DataTable();
        int       AOR_ID = 0;
        bool      isVisible = false;
        string    dbName = string.Empty, displayName = string.Empty, idField = string.Empty;
        var       ordered = _gridColumns.Keys.OrderBy(k => _gridColumns[k].DisplayName).ToList();

        try
        {
            switch (entityType.ToUpper())
            {
            case "AOR":
                dt = AOR.AORList_Get(AORID: AOR_ID);

                _gridColumns = new Dictionary <string, GridColsColumn>();

                GridColsColumn column = new GridColsColumn();
                dbName      = string.Empty;
                displayName = string.Empty;
                idField     = string.Empty;
                isVisible   = false;

                foreach (DataColumn gridColumn in dt.Columns)
                {
                    column      = new GridColsColumn();
                    displayName = gridColumn.ColumnName;
                    idField     = gridColumn.ColumnName;
                    isVisible   = false;

                    switch (gridColumn.ColumnName)
                    {
                    //case "Current Release":
                    //    displayName = "Current Release";
                    //    idField = "ProductVersion_ID";
                    //    isVisible = true;
                    //    break;
                    case "Workload Allocation":
                        displayName = "Workload Allocation";
                        idField     = "WorkloadAllocation_ID";
                        isVisible   = true;
                        break;
                    }

                    if (isVisible)
                    {
                        column.ColumnName  = gridColumn.ColumnName;
                        column.DisplayName = displayName;
                        column.Visible     = isVisible;
                        column.SortName    = idField;

                        _gridColumns.Add(column.DisplayName, column);
                    }
                }

                //Initialize the columnData
                _columnData.Initialize(ref dt, ";", "~", "|");

                dtNew.Columns.Add("valueField");
                dtNew.Columns.Add("textField");
                dtNew.Columns.Add("id_field");

                ordered = _gridColumns.Keys.OrderBy(k => _gridColumns[k].DisplayName).ToList();

                foreach (string key in ordered)
                {
                    GridColsColumn col = _gridColumns[key];
                    if (col.Visible)
                    {
                        DataRow dr = dtNew.NewRow();

                        dr[0] = col.ColumnName;
                        dr[1] = col.DisplayName;
                        dr[2] = col.SortName;

                        dtNew.Rows.Add(dr);
                    }
                }
                break;

            case "CR":
                dt = AOR.AORCRList_Get(AORID: AOR_ID, AORReleaseID: 0, CRID: 0);

                _gridColumns = new Dictionary <string, GridColsColumn>();

                column      = new GridColsColumn();
                dbName      = string.Empty;
                displayName = string.Empty;
                idField     = string.Empty;
                isVisible   = false;

                foreach (DataColumn gridColumn in dt.Columns)
                {
                    column      = new GridColsColumn();
                    displayName = gridColumn.ColumnName;
                    idField     = gridColumn.ColumnName;
                    isVisible   = false;

                    switch (gridColumn.ColumnName)
                    {
                    case "Contract":
                        displayName = "Contract";
                        idField     = "Contract_ID";
                        isVisible   = true;
                        break;

                    case "Websystem":
                        displayName = "Websystem";
                        idField     = "Websystem_ID";
                        isVisible   = false;
                        break;

                    case "Related Release":
                        displayName = "Related Release";
                        idField     = "RelatedRelease_ID";
                        isVisible   = false;
                        break;

                    case "Status":
                        displayName = "CR Coordination";
                        idField     = "Status_ID";
                        isVisible   = true;
                        break;

                    case "CyberISMT":
                        displayName = "Cyber/ISMT";
                        idField     = "CyberISMT_ID";
                        isVisible   = false;
                        break;
                    }

                    if (isVisible)
                    {
                        column.ColumnName  = gridColumn.ColumnName;
                        column.DisplayName = displayName;
                        column.Visible     = isVisible;
                        column.SortName    = idField;

                        _gridColumns.Add(column.DisplayName, column);
                    }
                }

                //Initialize the columnData
                _columnData.Initialize(ref dt, ";", "~", "|");

                dtNew.Columns.Add("valueField");
                dtNew.Columns.Add("textField");
                dtNew.Columns.Add("id_field");

                ordered = _gridColumns.Keys.OrderBy(k => _gridColumns[k].DisplayName).ToList();

                foreach (string key in ordered)
                {
                    GridColsColumn col = _gridColumns[key];
                    if (col.Visible)
                    {
                        DataRow dr = dtNew.NewRow();

                        dr[0] = col.ColumnName;
                        dr[1] = col.DisplayName;
                        dr[2] = col.SortName;

                        dtNew.Rows.Add(dr);
                    }
                }
                break;

            case "PRIMARYTASK":
                dt = AOR.AORTaskList_Get(AORID: AOR_ID, AORReleaseID: 0);
                //        dt = WorkloadItem.WorkItemList_Get(workRequestID: 0
                //, showArchived: 0
                //, columnListOnly: 0
                //, myData: false);
                _gridColumns = new Dictionary <string, GridColsColumn>();

                column      = new GridColsColumn();
                dbName      = string.Empty;
                displayName = string.Empty;
                idField     = string.Empty;
                isVisible   = false;

                foreach (DataColumn gridColumn in dt.Columns)
                {
                    column      = new GridColsColumn();
                    displayName = gridColumn.ColumnName;
                    idField     = gridColumn.ColumnName;
                    isVisible   = false;

                    switch (gridColumn.ColumnName)
                    {
                    case "System(Task)":
                        displayName = "System(Task)";
                        idField     = "WTS_SYSTEM_ID";
                        isVisible   = true;
                        break;

                    case "Production Status":
                        displayName = "Production Status";
                        idField     = "ProductionStatus_ID";
                        isVisible   = true;
                        break;

                    //case "Product Version":
                    //    displayName = "Product Version";
                    //    idField = "ProductVersion_ID";
                    //    isVisible = true;
                    //    break;
                    case "Priority":
                        displayName = "Priority";
                        idField     = "PRIORITY_ID";
                        isVisible   = true;
                        break;

                    case "Primary Resource":
                        displayName = "Primary Resource";
                        idField     = "PrimaryTechResource_ID";
                        isVisible   = true;
                        break;

                    case "Assigned To":
                        displayName = "Assigned To";
                        idField     = "AssignedTo_ID";
                        isVisible   = true;
                        break;

                    case "Status":
                        displayName = "Status";
                        idField     = "STATUS_ID";
                        isVisible   = true;
                        break;

                    case "Percent Complete":
                        displayName = "Percent Complete";
                        idField     = "PercentComplete_ID";
                        isVisible   = false;
                        break;
                    }

                    if (isVisible)
                    {
                        column.ColumnName  = gridColumn.ColumnName;
                        column.DisplayName = displayName;
                        column.Visible     = isVisible;
                        column.SortName    = idField;

                        _gridColumns.Add(column.DisplayName, column);
                    }
                }

                //Initialize the columnData
                _columnData.Initialize(ref dt, ";", "~", "|");

                dtNew.Columns.Add("valueField");
                dtNew.Columns.Add("textField");
                dtNew.Columns.Add("id_field");

                ordered = _gridColumns.Keys.OrderBy(k => _gridColumns[k].DisplayName).ToList();

                foreach (string key in ordered)
                {
                    GridColsColumn col = _gridColumns[key];
                    if (col.Visible)
                    {
                        DataRow dr = dtNew.NewRow();

                        dr[0] = col.DisplayName;
                        dr[1] = col.ColumnName;
                        dr[2] = col.SortName;

                        dtNew.Rows.Add(dr);
                    }
                }
                break;

            case "SUBTASK":
                //dt = AOR.AORTaskList_Get(AORID: AOR_ID, AORReleaseID: 0);
                dt = WorkloadItem.WorkItem_GetTaskList(workItemID: 0, showArchived: 0, showBacklog: false);

                _gridColumns = new Dictionary <string, GridColsColumn>();

                column      = new GridColsColumn();
                dbName      = string.Empty;
                displayName = string.Empty;
                idField     = string.Empty;
                isVisible   = false;

                foreach (DataColumn gridColumn in dt.Columns)
                {
                    column      = new GridColsColumn();
                    displayName = gridColumn.ColumnName;
                    idField     = gridColumn.ColumnName;
                    isVisible   = false;

                    switch (gridColumn.ColumnName)
                    {
                    case "AssignedResource":
                        displayName = "Assigned To";
                        idField     = "ASSIGNEDRESOURCEID";
                        isVisible   = true;
                        break;

                    case "Production Status":
                        displayName = "Production Status";
                        idField     = "ProductionStatus_ID";
                        isVisible   = true;
                        break;

                    //case "Product Version":
                    //    displayName = "Product Version";
                    //    idField = "ProductVersion_ID";
                    //    isVisible = true;
                    //    break;
                    case "Priority":
                        displayName = "Priority";
                        idField     = "PRIORITY_ID";
                        isVisible   = true;
                        break;

                    case "Primary Resource":
                        displayName = "Primary Resource";
                        idField     = "PrimaryTechResource_ID";
                        isVisible   = true;
                        break;

                    case "Assigned To":
                        displayName = "Assigned To";
                        idField     = "AssignedTo_ID";
                        isVisible   = true;
                        break;

                    case "Status":
                        displayName = "Status";
                        idField     = "STATUS_ID";
                        isVisible   = true;
                        break;

                    case "Percent Complete":
                        displayName = "Percent Complete";
                        idField     = "PercentComplete_ID";
                        isVisible   = false;
                        break;
                    }

                    if (isVisible)
                    {
                        column.ColumnName  = gridColumn.ColumnName;
                        column.DisplayName = displayName;
                        column.Visible     = isVisible;
                        column.SortName    = idField;

                        _gridColumns.Add(column.DisplayName, column);
                    }
                }

                //Initialize the columnData
                _columnData.Initialize(ref dt, ";", "~", "|");

                dtNew.Columns.Add("valueField");
                dtNew.Columns.Add("textField");
                dtNew.Columns.Add("id_field");

                ordered = _gridColumns.Keys.OrderBy(k => _gridColumns[k].DisplayName).ToList();

                foreach (string key in ordered)
                {
                    GridColsColumn col = _gridColumns[key];
                    if (col.Visible)
                    {
                        DataRow dr = dtNew.NewRow();

                        dr[0] = col.ColumnName;
                        dr[1] = col.DisplayName;
                        dr[2] = col.SortName;

                        dtNew.Rows.Add(dr);
                    }
                }
                break;
            }
        }
        catch (Exception ex)
        {
            LogUtility.LogException(ex);
        }

        return(JsonConvert.SerializeObject(dtNew, Newtonsoft.Json.Formatting.None));
    }
    private void initAttributeOptions()
    {
        try
        {
            DataSet dsOptions = WorkloadItem.GetAvailableOptions();

            if (dsOptions != null && dsOptions.Tables.Count > 0)
            {
                if (dsOptions.Tables.Contains("WorkRequest"))
                {
                    Page.ClientScript.RegisterArrayDeclaration("_WorkRequestList", JsonConvert.SerializeObject(dsOptions.Tables["WorkRequest"], Newtonsoft.Json.Formatting.None));
                }
                if (dsOptions.Tables.Contains("System"))
                {
                    Page.ClientScript.RegisterArrayDeclaration("_SystemList", JsonConvert.SerializeObject(dsOptions.Tables["System"], Newtonsoft.Json.Formatting.None));
                }
                if (dsOptions.Tables.Contains("Allocation"))
                {
                    Page.ClientScript.RegisterArrayDeclaration("_AllocationList", JsonConvert.SerializeObject(dsOptions.Tables["Allocation"], Newtonsoft.Json.Formatting.None));
                }
                if (dsOptions.Tables.Contains("ProductVersion"))
                {
                    Page.ClientScript.RegisterArrayDeclaration("_ProductVersionList", JsonConvert.SerializeObject(dsOptions.Tables["ProductVersion"], Newtonsoft.Json.Formatting.None));
                }
                if (dsOptions.Tables.Contains("Priority"))
                {
                    Page.ClientScript.RegisterArrayDeclaration("_PriorityList", JsonConvert.SerializeObject(dsOptions.Tables["Priority"], Newtonsoft.Json.Formatting.None));
                }
                if (dsOptions.Tables.Contains("WorkItemType"))
                {
                    Page.ClientScript.RegisterArrayDeclaration("_WorkItemTypeList", JsonConvert.SerializeObject(dsOptions.Tables["WorkItemType"], Newtonsoft.Json.Formatting.None));
                }
                if (dsOptions.Tables.Contains("User"))
                {
                    Page.ClientScript.RegisterArrayDeclaration("_UserList", JsonConvert.SerializeObject(dsOptions.Tables["User"], Newtonsoft.Json.Formatting.None));
                }
                if (dsOptions.Tables.Contains("WorkType"))
                {
                    Page.ClientScript.RegisterArrayDeclaration("_WorkTypeList", JsonConvert.SerializeObject(dsOptions.Tables["WorkType"], Newtonsoft.Json.Formatting.None));
                }
                if (dsOptions.Tables.Contains("Status"))
                {
                    Page.ClientScript.RegisterArrayDeclaration("_StatusList", JsonConvert.SerializeObject(dsOptions.Tables["Status"], Newtonsoft.Json.Formatting.None));
                }
                if (dsOptions.Tables.Contains("PercentComplete"))
                {
                    Page.ClientScript.RegisterArrayDeclaration("_PercentList", JsonConvert.SerializeObject(dsOptions.Tables["PercentComplete"], Newtonsoft.Json.Formatting.None));
                }
                if (dsOptions.Tables.Contains("PriorityRank"))
                {
                    Page.ClientScript.RegisterArrayDeclaration("_PriorityRankList", JsonConvert.SerializeObject(dsOptions.Tables["PriorityRank"], Newtonsoft.Json.Formatting.None));
                }

                if (dsOptions.Tables.Contains("MenuType"))
                {
                    Page.ClientScript.RegisterArrayDeclaration("_MenuTypeList", JsonConvert.SerializeObject(dsOptions.Tables["MenuType"], Newtonsoft.Json.Formatting.None));
                }
                if (dsOptions.Tables.Contains("Menu"))
                {
                    Page.ClientScript.RegisterArrayDeclaration("_MenuList", JsonConvert.SerializeObject(dsOptions.Tables["Menu"], Newtonsoft.Json.Formatting.None));
                }
                if (dsOptions.Tables.Contains("ProductionStatus"))
                {
                    Page.ClientScript.RegisterArrayDeclaration("_ProductionStatusList", JsonConvert.SerializeObject(dsOptions.Tables["ProductionStatus"], Newtonsoft.Json.Formatting.None));
                }
            }
        }
        catch (Exception ex)
        {
            LogUtility.LogException(ex);
        }
    }
Beispiel #29
0
    public static string LoadFilteredEntity(string entityType, string idField, string columnName, string textField, string existingValueFilter, string filterField, string filterFieldIDs)
    {
        DataTable dtNew  = new DataTable();
        DataTable dt     = new DataTable();
        int       AOR_ID = 0;

        try
        {
            switch (entityType.ToUpper())
            {
            case "AOR":
                dt = AOR.AORList_Get(AORID: AOR_ID);
                if (filterFieldIDs.Length > 0)
                {
                    dt.DefaultView.RowFilter = filterField + " IN (" + filterFieldIDs + ")";
                    dt = dt.DefaultView.ToTable();
                }

                dt.DefaultView.RowFilter = idField + " IN (" + existingValueFilter + ")";
                dtNew = dt.DefaultView.ToTable(distinct: true, columnNames: new string[] { "AOR #", "AOR Name" });
                dtNew.Columns["AOR #"].ColumnName    = "valueField";
                dtNew.Columns["AOR Name"].ColumnName = "textField";
                break;

            case "CR":
                dt = AOR.AORCRList_Get(AORID: AOR_ID, AORReleaseID: 0, CRID: 0);
                if (filterFieldIDs.Length > 0)
                {
                    dt.DefaultView.RowFilter = filterField + " IN (" + filterFieldIDs + ")";
                    dt = dt.DefaultView.ToTable();
                }
                dt.DefaultView.RowFilter = idField + " IN (" + existingValueFilter + ")";
                dtNew = dt.DefaultView.ToTable(distinct: true, columnNames: new string[] { "CR_ID", "CR Customer Title" });
                dtNew.Columns["CR_ID"].ColumnName             = "valueField";
                dtNew.Columns["CR Customer Title"].ColumnName = "textField";
                break;

            case "PRIMARYTASK":
                dt = AOR.AORTaskList_Get(AORID: AOR_ID, AORReleaseID: 0);
                if (filterFieldIDs.Length > 0)
                {
                    dt.DefaultView.RowFilter = filterField + " IN (" + filterFieldIDs + ")";
                    dt = dt.DefaultView.ToTable();
                }
                dt.DefaultView.RowFilter = idField + " IN (" + existingValueFilter + ")";
                dtNew = dt.DefaultView.ToTable(distinct: true, columnNames: new string[] { "Task #", "Title" });
                dtNew.Columns["Task #"].ColumnName = "valueField";
                dtNew.Columns["Title"].ColumnName  = "textField";
                break;

            case "SUBTASK":
                dt = WorkloadItem.WorkItem_GetTaskList(workItemID: 0, showArchived: 0, showBacklog: false);
                if (filterFieldIDs.Length > 0)
                {
                    dt.DefaultView.RowFilter = filterField + " IN (" + filterFieldIDs + ")";
                    dt = dt.DefaultView.ToTable();
                }
                dt.DefaultView.RowFilter = idField + " IN (" + existingValueFilter + ")";
                dtNew = dt.DefaultView.ToTable(distinct: true, columnNames: new string[] { "WORKITEMID", "TASK_NUMBER", "WORKITEM_TASKID", "Title" });
                dtNew.Columns["WORKITEMID"].ColumnName      = "WORKITEMID";
                dtNew.Columns["TASK_NUMBER"].ColumnName     = "TASK_NUMBER";
                dtNew.Columns["WORKITEM_TASKID"].ColumnName = "valueField";
                dtNew.Columns["Title"].ColumnName           = "textField";
                break;
            }

            dtNew.DefaultView.Sort = "textField";
            dtNew = dtNew.DefaultView.ToTable();
        }
        catch (Exception ex)
        {
            LogUtility.LogException(ex);
        }

        return(JsonConvert.SerializeObject(dtNew, Newtonsoft.Json.Formatting.None));
    }
    void grdWorkload_GridRowDataBound(object sender, GridViewRowEventArgs e)
    {
        columnData.SetupGridBody(e.Row);

        GridViewRow row = e.Row;

        formatColumnDisplay(ref row);

        string itemId     = row.Cells[DCC.IndexOf("ItemID")].Text.Trim();
        string workTypeId = row.Cells[DCC.IndexOf("WorkTypeID")].Text.Trim();

        row.Attributes.Add("ITEMID", itemId);
        row.Attributes.Add("WorkTypeID", workTypeId);

        string title = row.Cells[DCC["TITLE"].Ordinal].Text.Trim();

        row.Cells[DCC["ItemID"].Ordinal].Controls.Add(createEditLink_WorkItem(itemId, Server.HtmlDecode(title)));
        row.Cells[DCC["ItemID"].Ordinal].ToolTip = Server.HtmlDecode(title);
        row.Cells[DCC["TITLE"].Ordinal].ToolTip  = Server.HtmlDecode(title);

        //add QM controls
        if (this.CanEditWorkItem)
        {
            row.Cells[DCC.IndexOf("WORKREQUEST")].Controls.Add(WTSUtility.CreateGridDropdownList("WORKREQUEST", itemId, row.Cells[DCC.IndexOf("WORKREQUEST")].Text.Replace("&nbsp;", " ").Trim(), row.Cells[DCC.IndexOf("WORKREQUESTID")].Text.Replace("&nbsp;", " ").Trim(), 180));
            row.Cells[DCC.IndexOf("WORKITEMTYPE")].Controls.Add(WTSUtility.CreateGridDropdownList("WORKITEMTYPE", itemId, row.Cells[DCC.IndexOf("WORKITEMTYPE")].Text.Replace("&nbsp;", " ").Trim(), row.Cells[DCC.IndexOf("WORKITEMTYPEID")].Text.Replace("&nbsp;", " ").Trim(), 0));
            row.Cells[DCC.IndexOf("Websystem")].Controls.Add(WTSUtility.CreateGridDropdownList("Websystem", itemId, Server.HtmlDecode(row.Cells[DCC.IndexOf("Websystem")].Text).Trim(), row.Cells[DCC.IndexOf("WTS_SYSTEMID")].Text.Replace("&nbsp;", " ").Trim(), 120));
            row.Cells[DCC.IndexOf("ALLOCATION")].Controls.Add(WTSUtility.CreateGridDropdownList("ALLOCATION", itemId, row.Cells[DCC.IndexOf("ALLOCATION")].Text.Replace("&nbsp;", " ").Trim(), row.Cells[DCC.IndexOf("ALLOCATIONID")].Text.Replace("&nbsp;", " ").Trim(), 195));
            //row.Cells[DCC.IndexOf("Version")].Controls.Add(WTSUtility.CreateGridDropdownList("ProductVersion", itemId, row.Cells[DCC.IndexOf("Version")].Text.Replace("&nbsp;", " ").Trim(), row.Cells[DCC.IndexOf("ProductVersionID")].Text.Replace("&nbsp;", " ").Trim(), 0));
            row.Cells[DCC.IndexOf("PRIORITY")].Controls.Add(WTSUtility.CreateGridDropdownList("PRIORITY", itemId, row.Cells[DCC.IndexOf("PRIORITY")].Text.Replace("&nbsp;", " ").Trim(), row.Cells[DCC.IndexOf("PRIORITYID")].Text.Replace("&nbsp;", " ").Trim(), 0));
            row.Cells[DCC.IndexOf("Primary_Developer")].Controls.Add(WTSUtility.CreateGridDropdownList("Primary_Developer", itemId, row.Cells[DCC.IndexOf("Primary_Developer")].Text.Replace("&nbsp;", " ").Trim(), row.Cells[DCC.IndexOf("PRIMARYRESOURCEID")].Text.Replace("&nbsp;", " ").Trim(), 0));
            row.Cells[DCC.IndexOf("Assigned")].Controls.Add(WTSUtility.CreateGridDropdownList("Assigned", itemId, row.Cells[DCC.IndexOf("Assigned")].Text.Replace("&nbsp;", " ").Trim(), row.Cells[DCC.IndexOf("ASSIGNEDRESOURCEID")].Text.Replace("&nbsp;", " ").Trim(), 0));

            row.Cells[DCC.IndexOf("SubmittedBy")].Text = row.Cells[DCC.IndexOf("SubmittedBy")].Text.Trim();            // +"<br/>" + row.Cells[DCC.IndexOf("CREATEDDATE")].Text.Trim();

            row.Cells[DCC.IndexOf("WorkType")].Controls.Add(WTSUtility.CreateGridDropdownList("WorkType", itemId, row.Cells[DCC.IndexOf("WorkType")].Text.Replace("&nbsp;", " ").Trim(), row.Cells[DCC.IndexOf("WorkTypeID")].Text.Replace("&nbsp;", " ").Trim(), 0));

            bool   allow  = true;
            string status = row.Cells[DCC.IndexOf("STATUS")].Text.Replace("&nbsp;", " ").Trim();
            if (status.ToUpper() == "NEW" || status.ToUpper() == "ON HOLD" || status.ToUpper() == "IN PROGRESS")
            {
                int WorkItemID = 0;
                int.TryParse(itemId, out WorkItemID);

                if (WorkItemID > 0)
                {
                    DataTable dt = WorkloadItem.WorkItem_GetTaskList(workItemID: WorkItemID);

                    if (dt != null)
                    {
                        try
                        {
                            int Sub_Task_New_Count = (from r in dt.AsEnumerable()
                                                      where r.Field <string>("STATUS").Trim().ToUpper() == "NEW"
                                                      select r).Count();
                            if (status.ToUpper() == "NEW" && dt.Rows.Count == Sub_Task_New_Count)
                            {
                                allow = false;
                            }

                            int Sub_Task_OnHold_Count = (from r in dt.AsEnumerable()
                                                         where r.Field <string>("STATUS").Trim().ToUpper() == "ON HOLD"
                                                         select r).Count();
                            if (status.ToUpper() == "ON HOLD" && dt.Rows.Count == Sub_Task_OnHold_Count)
                            {
                                allow = false;
                            }

                            int Sub_Task_Closed_Count = (from r in dt.AsEnumerable()
                                                         where r.Field <string>("STATUS").Trim().ToUpper() == "CLOSED"
                                                         select r).Count();
                            if (status.ToUpper() == "IN PROGRESS" && dt.Rows.Count != Sub_Task_Closed_Count)
                            {
                                allow = false;
                            }
                        }
                        catch (Exception) { }
                    }
                }
            }
            row.Cells[DCC.IndexOf("STATUS")].Controls.Add(WTSUtility.CreateGridDropdownList("STATUS", itemId, status, row.Cells[DCC.IndexOf("STATUSID")].Text.Replace("&nbsp;", " ").Trim(), 0));
            try
            {
                DropDownList ddlStatus = (DropDownList)row.Cells[DCC.IndexOf("STATUS")].Controls[0];
                if (!allow)
                {
                    ddlStatus.Enabled = false;
                }
            }
            catch (Exception) { }

            row.Cells[DCC.IndexOf("Progress")].Controls.Add(WTSUtility.CreateGridDropdownList("Progress", itemId, row.Cells[DCC.IndexOf("Progress")].Text.Replace("&nbsp;", " ").Trim(), row.Cells[DCC.IndexOf("Progress")].Text.Replace("&nbsp;", " ").Trim(), 0));

            bool check = false;
            if (row.Cells[DCC.IndexOf("Production")].HasControls() &&
                row.Cells[DCC.IndexOf("Production")].Controls[0] is CheckBox)
            {
                check = ((CheckBox)row.Cells[DCC.IndexOf("Production")].Controls[0]).Checked;
            }
            else if (row.Cells[DCC.IndexOf("Production")].Text == "1")
            {
                check = true;
            }
            row.Cells[DCC.IndexOf("Production")].Controls.Clear();
            row.Cells[DCC.IndexOf("Production")].Controls.Add(WTSUtility.CreateGridCheckBox("Production", itemId, check));

            check = false;
            if (row.Cells[DCC.IndexOf("ARCHIVE")].HasControls() &&
                row.Cells[DCC.IndexOf("ARCHIVE")].Controls[0] is CheckBox)
            {
                check = ((CheckBox)row.Cells[DCC.IndexOf("ARCHIVE")].Controls[0]).Checked;
            }
            else if (row.Cells[DCC.IndexOf("ARCHIVE")].Text == "1")
            {
                check = true;
            }
            row.Cells[DCC.IndexOf("ARCHIVE")].Controls.Clear();
            row.Cells[DCC.IndexOf("ARCHIVE")].Controls.Add(WTSUtility.CreateGridCheckBox("ARCHIVE", itemId, check));

            row.Cells[DCC.IndexOf("ProductionStatus")].Controls.Add(WTSUtility.CreateGridDropdownList("ProductionStatus", itemId, row.Cells[DCC.IndexOf("ProductionStatus")].Text.Replace("&nbsp;", " ").Trim(), row.Cells[DCC.IndexOf("ProductionStatusID")].Text.Replace("&nbsp;", " ").Trim(), 0));
        }
    }