Esempio n. 1
0
        private bool IsTicketUser()
        {
            TicketsApplication ticketsApplication = new TicketsApplication();

            return(ticketsApplication.IsTicketUser(ChangeStatusTicketsEntityInfo.ID,
                                                   UserInfo.ID));
        }
Esempio n. 2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                if (QS("tid", 0) > 0)
                {
                    TicketsEntity entity = new TicketsApplication().GetTickets(QS("tid", 0));
                    if (entity == null && entity.CreatedBy != UserInfo.UserID)
                    {
                        ShowFailMessageToClient("unauthorized access.");
                        return;
                    }
                    ProjectApplication      projectApplication = new ProjectApplication();
                    List <ProjectDetailDTO> list = projectApplication.GetUserProjects(UserInfo);
                    this.ddlProject.DataTextField  = "Title";
                    this.ddlProject.DataValueField = "ProjectID";

                    ddlProject.DataSource = list;
                    ddlProject.DataBind();
                    jsonProjectAndEstimate = projectApplication.GetProjectAndEstimateRelationJson(list);
                    if (list.Count != 1)
                    {
                        ddlProject.Items.Insert(0, new ListItem()
                        {
                            Value = "", Text = "Please select..."
                        });
                    }

                    BindTicket(entity);
                }
            }
        }
Esempio n. 3
0
        protected void Page_Load(object sender, EventArgs e)
        {
            cgApp   = new CateGoryApplication();
            tickApp = new TicketsApplication();
            tsApp   = new TimeSheetApplication();
            projApp = new ProjectApplication();

            try
            {
                if (!string.IsNullOrEmpty(Request.Params["date"]))
                {
                    this.SelectedDate = Convert.ToDateTime(Request.QueryString["date"]);
                    if (!TimeSheetTicket.CanEdit(this.SelectedDate))
                    {
                        Alert("This date is invalid", "ListTimesheet.aspx");
                    }
                }
                else
                {
                    this.SelectedDate = DateTime.Now;
                }
            }
            catch
            {
                this.SelectedDate = DateTime.Now;
            }
            if (!IsPostBack)
            {
                InitControls();
                this.Title = string.Format("Write Timesheet - {0}", this.SelectedDate.ToString("MM/dd/yyyy"));
            }
        }
Esempio n. 4
0
        /// <summary>
        /// save : 1:save ; 2:draft ;3 save and new
        /// </summary>
        /// <param name="save"></param>
        private void SaveTicket(int save)
        {
            ProjectsEntity projectsEntity = new ProjectApplication().Get(int.Parse(ddlProject.SelectedValue));

            //判断当前日期是否大于Project的End Date
            if (!projectApplication.CheckIfEstimated(projectsEntity))
            {
                ShowMessageToClient("This project is closed, if you need to submit new tickets for this project, please contact us at [email protected].",
                                    2, false, false);
                return;
            }

            TicketsEntity ticketsEntity = GetEntity(save, projectsEntity.ProjectID, projectsEntity.CompanyID);

            int result = new TicketsApplication().AddTickets(ticketsEntity);

            if (result > 0)
            {
                AddTicketUsers(projectsEntity, ticketsEntity, result);
                AddIniHistroy(ticketsEntity);

                if (!ticketsEntity.IsInternal)
                {
                    SendHandler handler = new SendHandler(SendEamil);
                    handler.BeginInvoke(ticketsEntity, UserInfo, null, null);
                }

                string fileName = hidUploadFile.Value;

                if (fileName.Trim() != string.Empty)
                {
                    string[] files = fileName.Split('|');
                    foreach (string str in files)
                    {
                        InsertFile(str, ticketsEntity.ProjectID, result, ticketsEntity.CompanyID);
                    }
                }

                switch (save)
                {
                case 1:
                    Redirect("/Ticket/Ongoing.aspx", true);
                    break;

                case 2:
                    Redirect("/Ticket/Draft.aspx", true);
                    break;

                case 3:
                    // ShowSuccessMessageToClient("The ticket has been added.", false, false);
                    Redirect("/Ticket/New.aspx?project=" + ddlProject.SelectedValue, true);
                    break;
                }
            }
            else
            {
                ShowFailMessageToClient();
            }
        }
Esempio n. 5
0
        private string GetTasksByTickets(int id)
        {
            TicketsApplication tickApp   = new TicketsApplication();
            List <TasksEntity> listtasks = tickApp.GetTaskByID(id, true);
            string             jsontasks = UtilFactory.Helpers.JSONHelper.GetJson <List <TasksEntity> >(listtasks);

            return(jsontasks);
        }
Esempio n. 6
0
 public ReminderManager()
 {
     BootStrap.Config();
     _ticketsApp     = new TicketsApplication();
     _usersApp       = new UserApplication();
     _projectApp     = new ProjectApplication();
     _historyManager = new ReminderHistoryManager();
 }
Esempio n. 7
0
 protected void Page_Load(object sender, EventArgs e)
 {
     ticketApp = new TicketsApplication();
     if (!IsPostBack)
     {
         InitProjects();
         InitControls();
     }
 }
Esempio n. 8
0
 protected void Page_Load(object sender, EventArgs e)
 {
     cgApp   = new CateGoryApplication();
     tickApp = new TicketsApplication();
     trApp   = new TicketsRelationApplication();
     if (!IsPostBack)
     {
         InitControl();
     }
 }
Esempio n. 9
0
 public DayEntity(int year, int month, int day, string keyword, int userID, int status, List <ScheduleTicketEntity> mts)
 {
     this.Year     = year;
     this.Month    = month;
     this.Day      = day;
     this.Keyword  = keyword;
     this.Status   = status;
     this.UserID   = userID;
     _tickApp      = new TicketsApplication();
     _monthTickets = mts;
 }
Esempio n. 10
0
 public MonthEntity(int year, int month, string keyword, int userID, int status)
 {
     this.Year        = year;
     this.Month       = month;
     this.Keyword     = keyword;
     this.Status      = status;
     this._startDate  = new DateTime(year, month, 1);
     this._endDate    = new DateTime(year, month, DateTime.DaysInMonth(year, month));
     this.UserID      = userID;
     this.IsPageModal = false;
     _tickApp         = new TicketsApplication();
 }
Esempio n. 11
0
 private void BindTickets()
 {
     if (ddlProject.SelectedValue == "0")
     {
         ddlTickets.Items.Add(new ListItem("All", "0"));
     }
     else
     {
         TicketsApplication   tickApp = new TicketsApplication();
         SearchTicketsRequest request = new SearchTicketsRequest(SearchTicketsType.TicketsListByPID, " TicketTitle Asc", false);
         request.ProjectID = int.Parse(ddlProject.SelectedValue);
         SearchTicketsResponse response = tickApp.SearchTickets(request);
         response.ResultList.BindDropdown <ExpandTicketsEntity>(ddlTickets, "Title", "ID", "All", "0");
     }
 }
Esempio n. 12
0
 protected void ddlProject_SelectedIndexChanged(object sender, EventArgs e)
 {
     ddlTickets.Items.Clear();
     if (ddlProject.SelectedValue == "0")
     {
         ddlTickets.Items.Add(new ListItem("All", "0"));
     }
     else
     {
         TicketsApplication   tickApp = new TicketsApplication();
         SearchTicketsRequest request = new SearchTicketsRequest(SearchTicketsType.TicketsListByPID, " TicketTitle Asc", false);
         request.ProjectID = int.Parse(ddlProject.SelectedValue);
         SearchTicketsResponse response = tickApp.SearchTickets(request);
         response.ResultList.BindDropdown <ExpandTicketsEntity>(ddlTickets, "Title", "ID", "All", "0");
     }
 }
Esempio n. 13
0
        private SearchTicketsResponse GetTicketsByProject(int projID, DateTime sheetDate)
        {
            SearchTicketsRequest request = new SearchTicketsRequest(SearchTicketsType.TicketsForTimesheets, "TicketTitle ASC ", false);

            request.SheetDate = sheetDate;
            request.UserID    = IdentityContext.UserID;
            request.ProjectID = projID;
            request.OrderBy   = "TicketID";
            List <TicketsState> listStatus = TicketsStateHelper.TimeSheetStates;

            request.Status = listStatus;
            TicketsApplication    tickApp  = new TicketsApplication();
            SearchTicketsResponse response = tickApp.SearchTickets(request);

            return(response);
        }
Esempio n. 14
0
 protected void Page_Load(object sender, EventArgs e)
 {
     projApp   = new ProjectApplication();
     ticketApp = new TicketsApplication();
     if (!IsPostBack)
     {
         int id = QS("id", 0);
         if (id == 0)
         {
             this.ShowArgumentErrorMessageToClient();
         }
         else
         {
             InitControls();
         }
     }
 }
Esempio n. 15
0
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            if (IdentityContext.UserID <= 0)
            {
                context.Response.Write("[]");
                return;
            }
            string type = context.Request["type"];

            if (string.IsNullOrEmpty(type))
            {
                context.Response.Write("");
                return;
            }
            string response = string.Empty;

            switch (type)
            {
            case "UpdateStar":
                int ticketid = 0;
                int star     = 0;
                if (int.TryParse(context.Request["ticketid"], out ticketid) &&
                    int.TryParse(context.Request["star"], out star))
                {
                    TicketsApplication tickApp = new TicketsApplication();
                    if (tickApp.UpdateTicketStar(ticketid, star))
                    {
                        response = ResponseMessage.GetResponse(true, ResponseMessage.SuccessMessage, star);
                    }
                    else
                    {
                        response = ResponseMessage.GetResponse(true, ResponseMessage.SuccessMessage, star);
                    }
                }
                else
                {
                    response = ResponseMessage.GetResponse(true, "Arguments Error", 0);
                }
                context.Response.Write(response);
                break;

            default: break;
            }
        }
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            TicketsApplication ticketAPP = new TicketsApplication();
            UserApplication    userAPP   = new UserApplication();

            try
            {
                if (IdentityContext.UserID <= 0)
                {
                    return;
                }

                int tid = Convert.ToInt32(context.Request["tid"]);

                TicketsEntity ticketEntity = ticketAPP.GetTickets(tid);
                UsersEntity   userEntity   = userAPP.GetUser(IdentityContext.UserID);
                if (ticketEntity != null)
                {
                    string filePath        = System.AppDomain.CurrentDomain.BaseDirectory + "Template\\SendEmailToTeemByClientCancleTicket.txt";
                    string contentTemplete = string.Empty;
                    //if (File.Exists(filePath))
                    //{
                    //    contentTemplete = File.ReadAllText(filePath);
                    //}
                    contentTemplete = string.Format("<br/>The Ticket {0}, {1} has been cancelled by {2}<br/>"
                                                    , ticketEntity.TicketID, ticketEntity.Title, userEntity.FirstAndLastName);

                    string from = Config.DefaultSendEmail;
                    string to   = "*****@*****.**";


                    string subject = "Ticket be cancelled";
                    ObjectFactory.GetInstance <IEmailSender>().SendMail(to, from, subject, contentTemplete);
                }
            }
            catch (Exception ex)
            {
                context.Response.Write("para error!");
                WebLogAgent.Write(string.Format("Error Ashx:SendEmailClientCancelTicketHandler.ashx Messages:\r\n{0}", ex));
                return;
            }
        }
Esempio n. 17
0
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            if (IdentityContext.UserID <= 0)
            {
                return;
            }

            int pid = 0;

            if (!int.TryParse(context.Request.Form["pId"], out pid))
            {
                return;
            }
            int tid = 0;

            if (!int.TryParse(context.Request.Form["tId"], out tid))
            {
                return;
            }
            int status;

            if (!int.TryParse(context.Request.Form["status"], out status))
            {
                return;
            }

            UsersEntity userEntity = new App.UserApplication().GetUser(IdentityContext.UserID);

            if (userEntity.Role == RolesEnum.PM || userEntity.Role == RolesEnum.Leader)
            {
                TicketsApplication ticketAPP = new TicketsApplication();
                if (ticketAPP.ChangeInternalTicketStatus(IdentityContext.UserID, tid, (SunNet.PMNew.Entity.TicketModel.TicketsState)status))
                {
                    context.Response.Write("1"); //ok
                }
                else
                {
                    context.Response.Write("2"); //ticket associated personnel operate it!
                }
            }
        }
Esempio n. 18
0
        protected void Page_Load(object sender, EventArgs e)
        {
            projApp    = new ProjectApplication();
            fbmHandler = new FeedBackMessageHandler(UserInfo);
            tickApp    = new TicketsApplication();
            if (!IsPostBack)
            {
                InitSearchControls();


                int projectID = QS("pid", 0);
                if (projectID != 0)
                {
                    ddlProject.SelectedValue = projectID.ToString();
                    InitControl(projectID.ToString());
                }
                else
                {
                    InitControl(string.Empty);
                }
            }
        }
Esempio n. 19
0
 protected void Page_Load(object sender, EventArgs e)
 {
     ((Pop)this.Master).Width = 800;
     tsApp = new TimeSheetApplication();
     if (!IsPostBack)
     {
         string             headStr   = "";
         ProjectApplication projApp   = new ProjectApplication();
         TicketsApplication ticketApp = new TicketsApplication();
         ProjectsEntity     project   = projApp.Get(QS("project", 0));
         TicketsEntity      ticket    = ticketApp.GetTickets(QS("ticket", 0));
         if (project != null)
         {
             headStr += project.Title;
         }
         if (ticket != null)
         {
             headStr += " - " + ticket.Title;
         }
         litHead.Text = headStr;
         InitControl();
     }
 }
Esempio n. 20
0
        private string GetTicketsByProject(int projID, DateTime sheetDate)
        {
            SearchTicketsRequest request = new SearchTicketsRequest(SearchTicketsType.TicketsForTimesheets, "TicketTitle ASC ", false);

            request.SheetDate = sheetDate;
            request.UserID    = IdentityContext.UserID;
            request.ProjectID = projID;
            List <TicketsState> listStatus = TicketsStateHelper.TimeSheetStates;

            request.Status = listStatus;
            TicketsApplication    tickApp  = new TicketsApplication();
            SearchTicketsResponse response = tickApp.SearchTickets(request);

            if (!response.IsError)
            {
                string json = UtilFactory.Helpers.JSONHelper.GetJson <List <ExpandTicketsEntity> >(response.ResultList);
                return(json);
            }
            else
            {
                return("[]");
            }
        }
Esempio n. 21
0
        private void TicketsDataBind()
        {
            List <TicketsEntity>             list    = null;
            GetTicketsListByConditionRequest request = new GetTicketsListByConditionRequest();
            TicketsApplication        ticketAPP      = new TicketsApplication();
            TicketsSearchConditionDTO DTO            = new TicketsSearchConditionDTO();

            DTO.KeyWord        = "";
            DTO.Status         = Convert.ToString((int)TicketsState.Draft);
            DTO.TicketType     = "";
            DTO.Project        = "";
            DTO.AssignedUser   = "";
            DTO.Company        = "";
            DTO.Client         = "";
            DTO.ClientPriority = "";
            // DTO.PriorityView = true;


            request.TicketSc = DTO;
            //list = ticketAPP.GetTicketListBySearchCondition(request);
            //this.rptTicketsList.DataSource = list;
            //this.rptTicketsList.DataBind();
        }
Esempio n. 22
0
        public void ProcessRequest(HttpContext context)
        {
            int ticketID = QS(context.Request.QueryString["tid"], 0);
            int star     = QS(context.Request.QueryString["star"], 0);

            if (ticketID > 0)
            {
                TicketsApplication ticketsApplication = new TicketsApplication();
                if (ticketsApplication.UpdateTicketStar(ticketID, star))
                {
                    context.Response.Write("1");
                }
                else
                {
                    context.Response.Write("0");
                }
            }
            else
            {
                context.Response.Write("0");
            }
            context.Response.End();
        }
Esempio n. 23
0
        private void SaveTicket(bool save)
        {
            #region add ticket
            TicketsEntity ticketsEntity = new TicketsApplication().GetTickets(QS("tid", 0));
            ticketsEntity.Title           = txtTitle.Value.NoHTML();
            ticketsEntity.FullDescription = txtDesc.Value.NoHTML();
            ticketsEntity.URL             = txtUrl.Value;
            ticketsEntity.ProjectID       = int.Parse(ddlProject.SelectedValue);
            ticketsEntity.TicketType      = (TicketsType)int.Parse(ddlTicketType.SelectedValue);
            ticketsEntity.Priority        = (PriorityState)int.Parse(this.radioPriority.SelectedValue);
            ProjectsEntity projectsEntity = new ProjectApplication().Get(ticketsEntity.ProjectID);
            ticketsEntity.CompanyID   = projectsEntity.CompanyID;
            ticketsEntity.IsEstimates = chkEN.Checked;

            ticketsEntity.TicketCode = new TicketsApplication().ConvertTicketTypeToTicketCode(ticketsEntity.TicketType);
            ticketsEntity.IsInternal = false;
            ticketsEntity.CreatedBy  = UserInfo.UserID;
            ticketsEntity.CreatedOn  = DateTime.Now;
            ticketsEntity.ModifiedBy = UserInfo.UserID;
            ticketsEntity.ModifiedOn = DateTime.Now;

            ticketsEntity.PublishDate   = UtilFactory.Helpers.CommonHelper.GetDefaultMinDate();
            ticketsEntity.ConvertDelete = CovertDeleteState.Normal;
            ticketsEntity.StartDate     = UtilFactory.Helpers.CommonHelper.GetDefaultMinDate();
            ticketsEntity.DeliveryDate  = UtilFactory.Helpers.CommonHelper.GetDefaultMinDate();
            if (save)
            {
                ticketsEntity.Status = TicketsState.Submitted;
            }
            else
            {
                ticketsEntity.Status = TicketsState.Draft;
            }

            if (new TicketsApplication().UpdateTickets(ticketsEntity))
            {
                if (save)
                {
                    new TicketStatusManagerApplication().SendEmailToPMWhenTicketAdd(ticketsEntity.TicketID, ticketsEntity.TicketType);
                }
            }
            #endregion

            #region add file

            if (fileupload.PostedFile.ContentLength > 0)
            {
                string FolderName = string.Empty;
                if (null != projectsEntity)
                {
                    FolderName = projectsEntity.ProjectID.ToString();
                }


                string filderPath    = System.Configuration.ConfigurationManager.AppSettings["FolderPath"]; //~/path
                string savepath      = Server.MapPath(filderPath) + FolderName;
                string filename      = fileupload.PostedFile.FileName;
                string fileExtension = Path.GetExtension(filename);

                if (!Directory.Exists(savepath))
                {
                    Directory.CreateDirectory(savepath);
                }

                string sNewFileName = string.Format("{0}_{1}{2}", ticketsEntity.TicketID, DateTime.Now.ToString("yyMMddssmm"), fileExtension);

                fileupload.PostedFile.SaveAs(savepath + @"\" + sNewFileName);



                FilesEntity fileEntity = new FilesEntity();

                fileEntity.ContentType = fileExtension.ToLower();
                fileEntity.CreatedBy   = ticketsEntity.CreatedBy;
                fileEntity.FilePath    = filderPath.Substring(2) + FolderName + @"/" + sNewFileName;
                fileEntity.FileSize    = fileupload.PostedFile.ContentLength;
                fileEntity.FileTitle   = filename.Substring(0, filename.LastIndexOf('.'));
                fileEntity.IsPublic    = !ticketsEntity.IsInternal;
                fileEntity.ProjectId   = ticketsEntity.ProjectID;
                fileEntity.TicketId    = ticketsEntity.TicketID;
                fileEntity.CreatedOn   = DateTime.Now.Date;
                fileEntity.FeedbackId  = 0;
                fileEntity.SourceType  = (int)FileSourceType.Ticket;
                fileEntity.ThumbPath   = "";
                fileEntity.CompanyID   = ticketsEntity.CompanyID;
                int response = new FileApplication().AddFile(fileEntity);
            }

            #endregion
            ShowMessageToClient("The ticket has been updated.", 0, true, true);
        }
Esempio n. 24
0
        /// <summary>
        /// save : 1:save ; 2:draft ;3 save and new
        /// </summary>
        /// <param name="save"></param>
        private void SaveTicket(int save)
        {
            #region add ticket
            TicketsEntity ticketsEntity = new TicketsEntity();
            ticketsEntity.Title           = txtTitle.Value.NoHTML();
            ticketsEntity.FullDescription = txtDesc.Value.NoHTML();
            ticketsEntity.URL             = txtUrl.Value;
            ticketsEntity.ProjectID       = int.Parse(ddlProject.SelectedValue);
            ticketsEntity.TicketType      = (TicketsType)int.Parse(ddlType.SelectedValue);
            ticketsEntity.TicketCode      = new TicketsApplication().ConvertTicketTypeToTicketCode(ticketsEntity.TicketType);
            ticketsEntity.Priority        = (PriorityState)int.Parse(this.radioPriority.SelectedValue);
            ProjectsEntity projectsEntity = new ProjectApplication().Get(ticketsEntity.ProjectID);
            ticketsEntity.CompanyID   = projectsEntity.CompanyID;
            ticketsEntity.IsEstimates = chkEN.Checked;

            ticketsEntity.IsInternal = false;
            ticketsEntity.CreatedBy  = UserInfo.UserID;
            ticketsEntity.CreatedOn  = DateTime.Now;
            ticketsEntity.ModifiedBy = UserInfo.UserID;
            ticketsEntity.ModifiedOn = DateTime.Now;

            ticketsEntity.PublishDate   = UtilFactory.Helpers.CommonHelper.GetDefaultMinDate();
            ticketsEntity.ConvertDelete = CovertDeleteState.Normal;
            ticketsEntity.StartDate     = UtilFactory.Helpers.CommonHelper.GetDefaultMinDate();
            ticketsEntity.DeliveryDate  = UtilFactory.Helpers.CommonHelper.GetDefaultMinDate();
            if (UserInfo.Role == RolesEnum.PM || UserInfo.Role == RolesEnum.ADMIN)
            {
                ticketsEntity.Source = (RolesEnum)Enum.Parse(typeof(RolesEnum), ddlSource.SelectedValue);
            }
            else
            {
                ticketsEntity.Source = UserInfo.Role;
            }
            if (save == 2)
            {
                ticketsEntity.Status = TicketsState.Draft;
            }
            else
            {
                if (UserInfo.Role == RolesEnum.PM || UserInfo.Role == RolesEnum.ADMIN)
                {
                    ticketsEntity.Status = TicketsState.PM_Reviewed;
                }
                else
                {
                    ticketsEntity.Status = TicketsState.Submitted;
                }
            }
            int result = new TicketsApplication().AddTickets(ticketsEntity);

            if (result > 0)
            {
                TicketUsersEntity ticketUserEntity = new TicketUsersEntity();
                //add pm user
                ticketUserEntity.Type     = TicketUsersType.PM;
                ticketUserEntity.TicketID = result;
                ProjectsEntity projectEntity = new ProjectApplication().Get(ticketsEntity.ProjectID);
                if (projectEntity != null)
                {
                    ticketUserEntity.UserID = projectEntity.PMID;
                    new TicketsApplication().AddTicketUser(ticketUserEntity);
                }
                else
                {
                    WebLogAgent.Write(string.Format("Add Pm To Ticket User Error:Project :{0},Ticket:{1},CreateDate:{2}",
                                                    ticketsEntity.ProjectID, ticketsEntity.TicketID, DateTime.Now));
                }
                //add create user
                ticketUserEntity.Type     = TicketUsersType.Create;
                ticketUserEntity.TicketID = result;
                ticketUserEntity.UserID   = ticketsEntity.CreatedBy;
                new TicketsApplication().AddTicketUser(ticketUserEntity);

                if (UserInfo.Role == RolesEnum.PM || UserInfo.Role == RolesEnum.ADMIN)
                {
                    //添加当前Project中的Leader到此ticket下.
                    List <ProjectUsersEntity> ProjectUsers = new ProjectApplication().GetProjectSunnetUserList(projectsEntity.ID);
                    if (ProjectUsers != null)
                    {
                        List <ProjectUsersEntity> leaders = ProjectUsers.FindAll(r => r.Role == RolesEnum.Leader);
                        foreach (ProjectUsersEntity leader in leaders)
                        {
                            ticketUserEntity          = new TicketUsersEntity();
                            ticketUserEntity.Type     = TicketUsersType.Dev;
                            ticketUserEntity.TicketID = result;
                            ticketUserEntity.UserID   = leader.UserID;
                            new TicketsApplication().AddTicketUser(ticketUserEntity);
                        }
                    }
                }
            }
            #endregion

            #region send email
            TicketStatusManagerApplication ex = new TicketStatusManagerApplication();
            if (!ticketsEntity.IsInternal)
            {
                ex.SendEmailToPMWhenTicketAdd(result, ticketsEntity.TicketType);
            }

            #endregion

            #region add file

            if (fileupload.PostedFile.ContentLength > 0)
            {
                string FolderName = string.Empty;
                if (null != projectsEntity)
                {
                    FolderName = projectsEntity.ProjectID.ToString();
                }


                string filderPath    = System.Configuration.ConfigurationManager.AppSettings["FolderPath"]; //~/path
                string savepath      = Server.MapPath(filderPath) + FolderName;
                string filename      = fileupload.PostedFile.FileName;
                string fileExtension = Path.GetExtension(filename);

                if (!Directory.Exists(savepath))
                {
                    Directory.CreateDirectory(savepath);
                }

                string sNewFileName = string.Format("{0}_{1}{2}", result, DateTime.Now.ToString("yyMMddssmm"), fileExtension);

                fileupload.PostedFile.SaveAs(savepath + @"\" + sNewFileName);



                FilesEntity fileEntity = new FilesEntity();

                fileEntity.ContentType = fileExtension.ToLower();
                fileEntity.CreatedBy   = ticketsEntity.CreatedBy;
                fileEntity.FilePath    = filderPath.Substring(2) + FolderName + @"/" + sNewFileName;
                fileEntity.FileSize    = fileupload.PostedFile.ContentLength;
                fileEntity.FileTitle   = filename.Substring(0, filename.LastIndexOf('.'));
                fileEntity.IsPublic    = !ticketsEntity.IsInternal;
                fileEntity.ProjectId   = ticketsEntity.ProjectID;
                fileEntity.TicketId    = result;
                fileEntity.CreatedOn   = DateTime.Now.Date;
                fileEntity.FeedbackId  = 0;
                fileEntity.SourceType  = (int)FileSourceType.Ticket;
                fileEntity.ThumbPath   = "";
                fileEntity.CompanyID   = ticketsEntity.CompanyID;
                int response = new FileApplication().AddFile(fileEntity);
            }

            #endregion

            switch (save)
            {
            case 1:
                ShowMessageAndRedirect("The ticket has been added.", "/sunnet/Clients/ListTicket.aspx");
                break;

            case 2:
                ShowMessageAndRedirect("The ticket has been added.", "/sunnet/Clients/ListTicketDrafted.aspx");
                break;

            case 3:
                ShowMessageAndRedirect("The ticket has been added.", "/sunnet/Clients/AddBug.aspx");
                break;
            }
        }
Esempio n. 25
0
        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            int ticketID = QS("tid", 0);

            if (ticketID != 0)
            {
                bool isSuccess = UpdateTicketStatusToDeny(ticketID);
                if (isSuccess)
                {
                    if (txtDescription.Text.Trim() != "" || (Request.Files.Count > 0 && Request.Files[0].ContentLength > 0))
                    {
                        FeedBacksEntity feedbacksEntity = new FeedBacksEntity();
                        feedbacksEntity.IsDelete           = false;
                        feedbacksEntity.TicketID           = ticketID;
                        feedbacksEntity.Title              = "";
                        feedbacksEntity.Description        = txtDescription.Text.Trim().NoHTML();
                        feedbacksEntity.CreatedBy          = UserInfo.UserID;
                        feedbacksEntity.CreatedOn          = DateTime.Now;
                        feedbacksEntity.ModifiedOn         = DateTime.Now;
                        feedbacksEntity.IsPublic           = true;
                        feedbacksEntity.WaitClientFeedback = FeedbackReplyStatus.Normal;
                        feedbacksEntity.WaitPMFeedback     = FeedbackReplyStatus.Normal;

                        feedbacksEntity.ID = fbAPP.AddFeedBacks(feedbacksEntity);

                        if (feedbacksEntity.ID <= 0)
                        {
                            ShowFailMessageToClient();
                            return;
                        }
                        ticketStatusMgr.SendEmailtoPMForFeedBack(feedbacksEntity);//状态更新不进行跟新气泡,by dave 2017/09/22

                        //if (ticketAPP.CreateNotification(ticketID,UserInfo.UserID))
                        //{
                        //    //发邮件给PM
                        //    ticketStatusMgr.SendEmailtoPMForFeedBack(feedbacksEntity);
                        //}

                        HttpFileCollection files            = Request.Files;
                        string             fileuploadErrMsg = string.Empty;
                        TicketsEntity      ticketsEntity    = new TicketsApplication().GetTickets(feedbacksEntity.TicketID);
                        for (int i = 0; i < files.Count; i++)
                        {
                            if (files[i].ContentLength > 0 && IsValidFile(files[i].FileName))
                            {
                                if (!InsertFile(files[i], ticketsEntity.ProjectID, feedbacksEntity.TicketID, feedbacksEntity.IsPublic, feedbacksEntity.ID))
                                {
                                    fileuploadErrMsg += files[i].FileName + " Upload failed.";
                                }
                            }
                        }
                        if (!string.IsNullOrEmpty(fileuploadErrMsg))
                        {
                            ShowFailMessageToClient(fileuploadErrMsg);
                            return;
                        }
                    }

                    string returnurl = Request.QueryString["returnurl"];
                    if (string.IsNullOrEmpty(returnurl))
                    {
                        Redirect(Request.RawUrl, false, true);
                    }
                    else
                    {
                        ParentToUrl(returnurl);
                    }
                }
                else
                {
                    ShowFailMessageToClient("Update ticket’s status fail.");
                }
            }
            else
            {
                ShowFailMessageToClient("Update ticket’s status fail.");
            }
        }
Esempio n. 26
0
        private bool ClearFeedbackMessage(int ticketID)
        {
            TicketsApplication tickApp = new TicketsApplication();

            return(tickApp.ClearNotification(ticketID, UserID));
        }
Esempio n. 27
0
        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            //添加ticket的Rating, 和Feedback
            int star;

            if (!int.TryParse(hdStar.Value, out star))
            {
                star = 0;
            }
            int ticketID = QS("tid", 0);

            if (ticketID != 0)
            {
                TicketsApplication ticketsApplication = new TicketsApplication();
                if (ticketsApplication.UpdateTicketStar(ticketID, star))
                {
                    //添加Feedback
                    bool isSuccess = UpdateTicketStatusToApprove(ticketID);

                    if (isSuccess)
                    {
                        if (txtFeedback.Text.Trim() != string.Empty)
                        {
                            FeedBacksEntity feedbacksEntity = new FeedBacksEntity();
                            feedbacksEntity.IsDelete           = false;
                            feedbacksEntity.TicketID           = ticketID;
                            feedbacksEntity.Title              = "";
                            feedbacksEntity.Description        = txtFeedback.Text.NoHTML();
                            feedbacksEntity.CreatedBy          = UserInfo.UserID;
                            feedbacksEntity.CreatedOn          = DateTime.Now;
                            feedbacksEntity.ModifiedOn         = DateTime.Now;
                            feedbacksEntity.IsPublic           = true;
                            feedbacksEntity.WaitClientFeedback = FeedbackReplyStatus.Normal;
                            feedbacksEntity.WaitPMFeedback     = FeedbackReplyStatus.Normal;

                            feedbacksEntity.ID = fbAPP.AddFeedBacks(feedbacksEntity);

                            if (feedbacksEntity.ID <= 0)
                            {
                                ShowFailMessageToClient();
                                return;
                            }
                            ticketStatusMgr.SendEmailtoPMForFeedBack(feedbacksEntity);//状态更新,不进行刷新气泡
                            //if (ticketAPP.CreateNotification(ticketID,UserInfo.UserID))
                            //{
                            //    //发邮件给PM
                            //    ticketStatusMgr.SendEmailtoPMForFeedBack(feedbacksEntity);
                            //}
                        }

                        string returnurl = Request.QueryString["returnurl"];
                        if (string.IsNullOrEmpty(returnurl))
                        {
                            Redirect(Request.RawUrl, false, true);
                        }
                        else
                        {
                            ParentToUrl(returnurl);
                        }
                    }
                    else
                    {
                        ShowFailMessageToClient("Update ticket’s status fail.");
                    }
                }
            }
            else
            {
                ShowFailMessageToClient("Update ticket’s status fail.");
            }
        }
Esempio n. 28
0
        private void SaveTicket(bool save)
        {
            #region add ticket
            TicketsEntity ticketsEntity = new TicketsApplication().GetTickets(QS("tid", 0));
            ticketsEntity.Title           = txtTitle.Text.NoHTML();
            ticketsEntity.FullDescription = txtDesc.Value.NoHTML();
            ticketsEntity.URL             = txtUrl.Text;
            ticketsEntity.ProjectID       = int.Parse(ddlProject.SelectedValue);
            ticketsEntity.TicketType      = (TicketsType)int.Parse(rdoType.SelectedValue);
            ticketsEntity.Priority        = (PriorityState)int.Parse(this.rdoPriority.SelectedValue);
            ProjectsEntity projectsEntity = new ProjectApplication().Get(ticketsEntity.ProjectID);
            ticketsEntity.CompanyID   = projectsEntity.CompanyID;
            ticketsEntity.IsEstimates = chkEN.Checked;

            ticketsEntity.TicketCode = new TicketsApplication().ConvertTicketTypeToTicketCode(ticketsEntity.TicketType);
            ticketsEntity.IsInternal = false;
            ticketsEntity.CreatedBy  = UserInfo.UserID;
            ticketsEntity.CreatedOn  = DateTime.Now;
            ticketsEntity.ModifiedBy = UserInfo.UserID;
            ticketsEntity.ModifiedOn = DateTime.Now;

            ticketsEntity.PublishDate   = UtilFactory.Helpers.CommonHelper.GetDefaultMinDate();
            ticketsEntity.ConvertDelete = CovertDeleteState.Normal;
            ticketsEntity.StartDate     = UtilFactory.Helpers.CommonHelper.GetDefaultMinDate();
            ticketsEntity.DeliveryDate  = UtilFactory.Helpers.CommonHelper.GetDefaultMinDate();
            if (save)
            {
                ticketsEntity.Status = TicketsState.Submitted;
            }
            else
            {
                ticketsEntity.Status = TicketsState.Draft;
            }

            if (new TicketsApplication().UpdateTickets(ticketsEntity))
            {
                if (save)
                {
                    new TicketStatusManagerApplication().SendEmailToPMWhenTicketAdd(ticketsEntity, UserInfo);
                }
            }
            #endregion

            #region add file


            string fileName = hidUploadFile.Value;

            if (fileName.Trim() != string.Empty)
            {
                string[] files = fileName.Split('|');
                foreach (string str in files)
                {
                    InsertFile(str, ticketsEntity.ProjectID, ticketsEntity.TicketID, ticketsEntity.CompanyID);
                }
            }

            #endregion
            ShowMessageToClient("The ticket has been updated.", 0, true, true);
            if (save)
            {
                Redirect("/Ticket/Ongoing.aspx", true);
            }
            else
            {
                Redirect("/Ticket/Draft.aspx", true);
            }
        }
Esempio n. 29
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                List <ProjectDetailDTO> list       = projectApplication.GetUserProjects(UserInfo);
                List <TicketsEntity>    listTicket = ticketAPP.GetTicketsByCreateId(UserInfo.UserID);
                var projectDetailDto = list.FirstOrDefault(c =>
                {
                    var firstOrDefault = listTicket.FirstOrDefault();
                    return(firstOrDefault != null && c.Title == firstOrDefault.ProjectTitle);
                });
                jsonProjectInfo = projectApplication.GetProjectInfoJson(list);
                if (QS("tid", 0) > 0)
                {
                    TicketsEntity entity = new TicketsApplication().GetTickets(QS("tid", 0));
                    if (entity == null && entity.CreatedBy != UserInfo.UserID)
                    {
                        ShowFailMessageToClient("unauthorized access.");
                        return;
                    }

                    this.ddlProject.DataTextField  = "Title";
                    this.ddlProject.DataValueField = "ProjectID";
                    if (list != null && list.Count > 0)
                    {
                        list.RemoveAll(r => r.Status == ProjectStatus.Cancelled || r.Status == ProjectStatus.Completed);
                    }
                    ddlProject.DataSource = list;
                    ddlProject.DataBind();
                    jsonProjectInfo = projectApplication.GetProjectInfoJson(list);
                    if (list.Count != 1)
                    {
                        ddlProject.Items.Insert(0, new ListItem()
                        {
                            Value = "", Text = "Please select..."
                        });
                    }
                    BindTicket(entity);
                    this.btnEditSave.Visible    = true;
                    this.btnEditSubmit.Visible  = true;
                    this.btnSaveAndNew.Visible  = false;
                    this.btnSaveAsDraft.Visible = false;
                    this.btnClear.Visible       = false;
                    btnSubmit.Visible           = false;
                }
                else
                {
                    if (projectDetailDto != null)
                    {
                        list.Remove(projectDetailDto);
                        list.Insert(0, projectDetailDto);
                        list.BindDropdown <ProjectDetailDTO>(ddlProject, "Title", "ProjectID");
                        ddlProject.Items.FindByValue(projectDetailDto.ProjectID.ToString()).Selected = true;
                    }
                    else
                    {
                        list.BindDropdown <ProjectDetailDTO>(ddlProject, "Title", "ProjectID", DefaulSelectText, "",
                                                             QS("project"));
                    }

                    if (UserInfo.Role == RolesEnum.PM || UserInfo.Role == RolesEnum.ADMIN)
                    {
                        dvSource.Style.Remove("visibility");
                        lblSource.Style.Remove("visibility");
                        ddlSource.DataSource = ConvertEnumtToListItem(typeof(RolesEnum));
                        ddlSource.DataBind();
                        ddlSource.SelectedValue = RolesEnum.CLIENT.ToString();
                    }
                    this.btnEditSave.Visible   = false;
                    this.btnEditSubmit.Visible = false;
                }

                if (list.Count == 1 && !projectApplication.CheckIfEstimated(list[0]))  //只有一个Project,且已过期
                {
                    this.btnSaveAsDraft.Enabled = false;
                    this.btnSubmit.Enabled      = false;
                    this.btnSaveAndNew.Enabled  = false;
                }
            }
        }
Esempio n. 30
0
        /// <summary>
        /// save : 1:save ; 2:draft ;3 save and new
        /// </summary>
        /// <param name="save"></param>
        private void SaveTicket(int save)
        {
            ProjectsEntity projectsEntity = new ProjectApplication().Get(int.Parse(ddlProject.SelectedValue));
            TicketsEntity  ticketsEntity  = GetEntity(save, projectsEntity.ProjectID, projectsEntity.CompanyID);

            int result = new TicketsApplication().AddTickets(ticketsEntity);

            if (result > 0)
            {
                ticketsEntity.TicketID = result;
                List <int> userIds;

                AddDefaultTicketUsers(projectsEntity, ticketsEntity, result, out userIds);
                AssignTicketUsers(ticketsEntity, userIds);
                AddIniHistroy(ticketsEntity);

                if (rdoShareKnowlege.Checked)
                {
                    ShareEntity shareEntity = new ShareEntity(UserInfo.ID, ObjectFactory.GetInstance <ISystemDateTime>());
                    int         type        = 0;
                    shareEntity.Title            = ticketsEntity.Title;
                    shareEntity.Note             = ticketsEntity.FullDescription;
                    shareEntity.Type             = type;
                    shareEntity.TicketID         = result;
                    shareEntity.TypeEntity.Title = ticketsEntity.Title;
                    _shareApp.Save(shareEntity);
                }

                if (!ticketsEntity.IsInternal)
                {
                    new SendHandler(() => ex.SendEmailToPMWhenTicketAdd(ticketsEntity, UserInfo))
                    .BeginInvoke(null, null);
                }

                string fileName = hidUploadFile.Value;

                if (fileName.Trim() != string.Empty)
                {
                    string[] files = fileName.Split('|');
                    foreach (string str in files)
                    {
                        InsertFile(str, ticketsEntity.ProjectID, result, ticketsEntity.CompanyID);
                    }
                }
                ProposalTrackerRelationEntity model = new ProposalTrackerRelationEntity();
                if (hid_Proposal.Value != "")
                {
                    model.CreatedBy = IdentityContext.UserID;
                    model.TID       = ticketsEntity.TicketID;
                    model.WID       = int.Parse(this.hid_Proposal.Value);
                    wrApp.AddProposalTrackerRelation(model);
                }


                switch (save)
                {
                case 1:
                    Redirect("/SunnetTicket/Index.aspx", true);
                    break;

                case 3:
                    Redirect("/SunnetTicket/New.aspx?project=" + ddlProject.SelectedValue, true);
                    break;
                }
            }
            else
            {
                ShowFailMessageToClient();
            }
        }