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