public void EditAssignment(FormCollection form) { string emailBody; MailMessage mail = new MailMessage(); SmtpClient mailer = new SmtpClient("owa13.Sullivan.edu"); //mail.Bcc.Add(new MailAddress("*****@*****.**")); //mail.Bcc.Add(new MailAddress("*****@*****.**")); mail.IsBodyHtml = true; mailer.EnableSsl = false; mail.From = new MailAddress("*****@*****.**"); IEnumerable <Staff> staff = request.Staffs; int requestID = Convert.ToInt16(Request.QueryString["requestID"]); Dictionary <string, bool> staffing = new Dictionary <string, bool>(); foreach (var employee in staff) { bool assigned; if (Request.Form["CB_" + employee.staffID] != null) { assigned = true; } else { assigned = false; } staffing.Add(employee.staffID, assigned); } foreach (var assignment in staffing) { var editRequestAssignment = request.RequestAssignments.FirstOrDefault(a => a.requestID == requestID && a.staffID == assignment.Key); if (assignment.Value == true) { if (editRequestAssignment == null) { RequestAssignment myRequest = new RequestAssignment(); myRequest.requestID = requestID; myRequest.staffID = assignment.Key; request.AddToRequestAssignments(myRequest); mail.To.Add(assignment.Key + "@Sullivan.edu"); request.SaveChanges(); } } else if (assignment.Value == false) { if (editRequestAssignment != null) { request.RequestAssignments.DeleteObject(editRequestAssignment); request.SaveChanges(); } } } if (mail.To.Count > 0) { emailBody = "<p>You have been assigned a project. <a href='https://secure.sullivan.edu/ProjectRequest/ProjectRequest/Request/RequestInfo?requestID=" + requestID.ToString() + "'>Click Here</a> to view the project"; emailBody += "<p><a href='https://secure.sullivan.edu/ProjectRequest/ProjectRequest/Assignment/Index'>Click here to view all your assignments</p>"; mail.Body = emailBody; mail.Subject = "Creative Communications Project Assignment"; mailer.Send(mail); } }
public bool SaveRequestAssignment(RequestVM model) { if (model.RequestId > 0) { var request = _context.Requests.Single(p => p.RequestId == model.RequestId); // If request already assign if (model.IsRequestAssignedAlready == true) { var requestAssignment = _context.RequestAssignments.Single(p => p.RequestId == model.RequestId); var requestReviewerResponse = _context.RequestResponses.SingleOrDefault(p => p.RequestId == model.RequestId); if (requestAssignment.IsAssignToArchitect) { if (requestAssignment.ArchitechStatus == Convert.ToInt32(ReviewerRequestStatus.MoreInfoRequired)) { // Update Architect Response if (requestReviewerResponse != null) { requestReviewerResponse.IsNoHistoricProperty = null; requestReviewerResponse.IsHistoricProperty = null; //requestReviewerResponse.IsNoEffect = null; //requestReviewerResponse.IsNoAdverseEffect = null; //requestReviewerResponse.IsNoAdverseEffectWithCondition = null; requestReviewerResponse.ArchitectResponse = null; requestReviewerResponse.ArchitectComment = null; requestReviewerResponse.ArchitectUserId = null; } // Update Architect Assignment Status requestAssignment.ArchitechStatus = Convert.ToInt32(ReviewerRequestStatus.Pending); } } if (requestAssignment.IsAssignToArchaelogical) { if (requestAssignment.ArchaelogicalStatus == Convert.ToInt32(ReviewerRequestStatus.MoreInfoRequired) || requestAssignment.ArchaelogicalStatus == Convert.ToInt32(ReviewerRequestStatus.SurveyRequired)) { // Update Archaelogical Response if (requestReviewerResponse != null) { requestReviewerResponse.ArchaelogicalResponse = null; requestReviewerResponse.ArchaelogicalComment = null; requestReviewerResponse.ArchaelogicalUserId = null; } // Update Archaelogical Assignment Status requestAssignment.ArchaelogicalStatus = Convert.ToInt32(ReviewerRequestStatus.Pending); } } if (requestAssignment.IsAssignToTechnical) { if (requestAssignment.TechnicalStatus == Convert.ToInt32(ReviewerRequestStatus.MoreInfoRequired)) { // Update Technical Response if (requestReviewerResponse != null) { requestReviewerResponse.TechnicalResponse = null; requestReviewerResponse.TechnicalComment = null; requestReviewerResponse.TechnicalUserId = null; } // Update Technical Assignment Status requestAssignment.TechnicalStatus = Convert.ToInt32(ReviewerRequestStatus.Pending); } } if (requestAssignment.IsAssignToLandMarks) { if (requestAssignment.LandMarksStatus == Convert.ToInt32(ReviewerRequestStatus.MoreInfoRequired)) { // Update Technical Response if (requestReviewerResponse != null) { requestReviewerResponse.LankMarksResponse = null; requestReviewerResponse.LankMarksComment = null; requestReviewerResponse.LankMarksUserId = null; } // Update Technical Assignment Status requestAssignment.LandMarksStatus = Convert.ToInt32(ReviewerRequestStatus.Pending); } } // Start internal clock on request re-assign var clock = _context.Clocks.Single(p => p.RequestId == model.RequestId); clock.InternalClockDate = DateTime.Now.AddDays(Convert.ToInt32(clock.InternalRemainingDays)); clock.InternalClockStatus = Convert.ToInt16(ClockStatus.Start); clock.InternalRemainingDays = null; _context.SaveChanges(); // Update Request Status to Assigned request.Status = Convert.ToInt32(RequestStatus.Assigned); _context.SaveChanges(); return(true); } else { if (model.RequestAssignment.IsAccept) { var assignment = new RequestAssignment() { RequestId = model.RequestId ?? 0, FederalOrState = model.RequestAssignment.FederalOrState, ProjectNumber = model.RequestAssignment.ProjectNumber, RespondDate = model.RequestAssignment.RespondDate, IsAssignToArchitect = model.RequestAssignment.IsAssignToArchitect, IsAssignToArchaelogical = model.RequestAssignment.IsAssignToArchaelogical, IsAssignToTechnical = model.RequestAssignment.IsAssignToTechnical, IsAssignToLandMarks = model.RequestAssignment.IsAssignToLandMarks, ArchitechStatus = model.RequestAssignment.IsAssignToArchitect ? Convert.ToInt32(ReviewerRequestStatus.Pending) : 0, ArchaelogicalStatus = model.RequestAssignment.IsAssignToArchaelogical ? Convert.ToInt32(ReviewerRequestStatus.Pending) : 0, TechnicalStatus = model.RequestAssignment.IsAssignToTechnical ? Convert.ToInt32(ReviewerRequestStatus.Pending) : 0, LandMarksStatus = model.RequestAssignment.IsAssignToLandMarks ? Convert.ToInt32(ReviewerRequestStatus.Pending) : 0 }; _context.RequestAssignments.Add(assignment); _context.SaveChanges(); // Update request status based on IsAccept request.Status = Convert.ToInt32(RequestStatus.Assigned); // Start internal clock var clock = _context.Clocks.Single(p => p.RequestId == model.RequestId); clock.InternalClockDate = DateTime.Now.AddDays(15); clock.InternalClockStatus = Convert.ToInt16(ClockStatus.Start); _context.SaveChanges(); } else { request.Status = Convert.ToInt32(RequestStatus.Returned); } _context.SaveChanges(); return(true); } } return(false); }