Пример #1
0
 public ActionResult Create(TaskModels issue)
 {
     if (ModelState.IsValid)
     {
         string currentUserId = User.Identity.GetUserId();
         var u_manager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(db));
         string currentUserEmailAddress = u_manager.GetEmail(currentUserId);
         int count_lenght = 4;
         Issue objIssue = new Issue();
         objIssue.ClientId = issue.ClientId;
         objIssue.ProductId = issue.ProductId;
         objIssue.PriorityId = issue.PriorityId;
         objIssue.StatusId = db.Status.Select(s => s).ToList().First(s => s.StatusType.ToLower() == AppStatus.UNASSIGNED).StatusId;
         objIssue.TagId = issue.TagId;
         objIssue.UploadedFileName = issue.UploadedFileName;
         Client objClient = db.Clients.First(c => c.ClientId == issue.ClientId);
         int clientIssuesCount = 0;
         //  string clientIssuesYear =Convert.ToDateTime(db.Issues.Where(t => t.ClientId == issue.ClientId).ToList().First().CreatedOn).Year.ToString();
         //issue code
         List<Issue> all_issues = db.Issues.ToList();
         var clientIssuesYear = (from p in all_issues
                                 group p by p.ClientId into g
                                 select g.OrderBy(p => p.CreatedOn).Last()).ToList();
         List<Issue> currentYearIssuesByClient = new List<Issue>();
         foreach (Issue item in all_issues)
         {
             if ((item.ClientId == issue.ClientId) && (Convert.ToDateTime(item.CreatedOn).Year.ToString() == DateTime.Now.Year.ToString()))
             {
                 currentYearIssuesByClient.Add(item);
             }
         }
         //  currentYearIssuesByClient = all_issues.Where(item => (item.ClientId == issue.ClientId) && ( item.CreatedOn !=null && item.CreatedOn.Value.Year == DateTime.Now.Year)).ToList();
         clientIssuesCount = currentYearIssuesByClient.Count() + 1;
         var task_count_format = clientIssuesCount.ToString().PadLeft(count_lenght, '0');
         var datestring = DateTime.Now.Day.ToString().PadLeft(2, '0') + "" + DateTime.Now.Month.ToString().PadLeft(2, '0') + "" + DateTime.Now.Year.ToString();
         objIssue.IssueCode = String.Format("{0}-{1}-{2}", objClient.Name, datestring, task_count_format.ToString());
         //
         string nextLIne = "_newline_";
         string hrLine = "_hrLine_";
         string boldStart = "_bs_";
         string boldEnd = "_be_";
         string divStart = "_ds_";
         string divEnd = "_de_";
         string dvStart = "_dstart_";
         objIssue.Tag = db.Tags.Find(objIssue.TagId);
         objIssue.Status = db.Status.Find(objIssue.StatusId);
         objIssue.Priority = db.Priorities.Find(issue.PriorityId);
         objIssue.Product = db.Products.Find(issue.ProductId);
         var user = db.Users.Find(currentUserId);
         objIssue.UpdatedBy = currentUserId;
         objIssue.CreatedOn = DateTime.Now;
         objIssue.CreatedBy = currentUserId;
         objIssue.AssignedBy = currentUserId;
         objIssue.AssignedOn = DateTime.Now;
         objIssue.UpdatedOn = DateTime.Now;
         string taskDescription = System.Net.WebUtility.HtmlDecode(issue.Description);
         objIssue.Description = divStart + dvStart + hrLine + dvStart + "New Task " + objIssue.IssueCode + " is added." + divEnd + hrLine + divEnd + boldStart + "Commented By:" + boldEnd + " " + DataHelper.ToPascalConvention(db.Users.Where(u => u.Email == User.Identity.Name).First().FullName) + nextLIne + boldStart + "Date:" + boldEnd + " " + objIssue.CreatedOn.ToString() + nextLIne + boldStart + "Comments:" + boldEnd + nextLIne + taskDescription + divEnd;
         db.Issues.Add(objIssue);
         db.SaveChanges();
         int issueID = db.Issues.Where(i => i.IssueCode == objIssue.IssueCode).ToList().First().IssueId;
         //Email Sending------   ttp://localhost:12950/Images/pronetemaillogo.png <img src="ttp://localhost:12950/Images/pronetemaillogo.png"/>
         var pagelink = Url.Action("AssignedTask", "Issue", new { id = issueID }, protocol: Request.Url.Scheme);
         var uri = new Uri(pagelink);
         string logoPath = uri.Scheme + Uri.SchemeDelimiter + uri.Host + ":" + uri.Port + "/Images/pronetemaillogo.png";
         string imageHtml = "<img height='55' width='112' src='" + logoPath + "'/>";
         string anchorHtml = "<a href=\"" + pagelink + "\">Click here to assign this task.</a>";
         string body;
         string filepath = Server.MapPath("~/App_Data/EmailTemplates/TaskCreationEmail.html");
         using (var sr = new StreamReader(filepath))
         {
             body = sr.ReadToEnd();
         }
         string mailSubject = objIssue.IssueCode + " has been created";
         string description = System.Net.WebUtility.HtmlDecode(issue.Description);
         string messageBody = string.Format(body.ToString(), mailSubject, objIssue.IssueCode, objIssue.Tag.TagValue, objClient.Name, objIssue.Priority.PriorityType, objIssue.Product.ProductName, objIssue.Status.StatusType, (user.FirstName + " " + user.LastName).ToString(), objIssue.CreatedOn, description, anchorHtml, DateTime.Now.Year, imageHtml, "", "", "", "none");//
         //  string sender = currentUserEmailAddress;
         string sender = ConfigurationManager.AppSettings["SenderEmailAddress"].ToString();
         try
         {
             MailManager.sendEmailToManagerRoles(sender, messageBody, mailSubject, "createTask", "", issue.UploadedFileName);
             return RedirectToAction("Index", new { id = issueID });
         }
         catch (Exception)
         {
             return RedirectToAction("Index", new { id = issueID });
         }
         //Email Sending End-----
     }
     ViewBag.ClientId = new SelectList(db.Clients, "ClientId", "Name", issue.ClientId);
     ViewBag.PriorityId = new SelectList(db.Priorities, "PriorityId", "PriorityType", issue.PriorityId);
     ViewBag.ProductId = new SelectList(db.Products, "ProductId", "ProductName", issue.ProductId);
     ViewBag.TagId = new SelectList(db.Tags, "TagId", "TagValue", issue.TagId);
     return View(issue);
 }
Пример #2
0
 public ActionResult Create()
 {
     ViewBag.ClientId = new SelectList(db.Clients, "ClientId", "Name");
     ViewBag.PriorityId = new SelectList(db.Priorities, "PriorityId", "PriorityType");
     ViewBag.ProductId = new SelectList(db.Products, "ProductId", "ProductName");
     ViewBag.TagId = new SelectList(db.Tags, "TagId", "TagValue");
     TaskModels issue = new TaskModels();
     return View(issue);
 }