private IssueLogInvolvedPersonListingModel BuildAssignedIssueModel(IssueLogInvolvedPerson issuelogInvolvedPerson) { var p = issuelogInvolvedPerson; var otherInvolvedPersons = _involvedPersonService.GetAllByIssueLogId(p.IssueLog.Id).ToList().Where(x => x.InvolvedPerson.Id != p.InvolvedPerson.Id); var model = new IssueLogInvolvedPersonListingModel { Id = p.Id, CompanyName = p.IssueLog.Project.Company.Name, ProjectName = p.IssueLog.Project.Name, ExpectedDate = p.IssueLog.IssueDate, Title = p.IssueLog.Header, Detail = p.IssueLog.Body, Note = p.IssueLog.Note, Priority = p.IssueLog.Priority.ToString(), IssueType = p.IssueLog.IssueType.ToString(), ReceiveDate = p.ReceiveDate != DateTime.MinValue ? (DateTime?)p.ReceiveDate : null, IsStart = p.ReceiveDate != DateTime.MinValue ? false : true }; model.OtherWorkingStatus = new List <string>(); foreach (var involvedPerson in otherInvolvedPersons) { model.OtherWorkingStatus.Add(involvedPerson.InvolvedPerson.UserName + (!involvedPerson.IsComplete ? (involvedPerson.ReceiveDate != DateTime.MinValue ? " has started working on this task." : " hasn't started working on this task yet") : " has completed the assigned task")); } return(model); }
private IEnumerable <IssueLogInvolvedPersonListingModel> BuildIssueLogInvolvedPerson(IEnumerable <IssueLogInvolvedPerson> involvedPersons) { var model = new List <IssueLogInvolvedPersonListingModel>(); foreach (var ip in involvedPersons) { var person = new IssueLogInvolvedPersonListingModel { Id = ip.Id, UserId = ip.InvolvedPerson.Id, UserName = ip.InvolvedPerson.UserName, EmailAddress = ip.InvolvedPerson.Email, Designation = ip.InvolvedPerson.Designation != null ? ip.InvolvedPerson.Designation.Name : string.Empty }; model.Add(person); } return(model); }
public async Task <IActionResult> View(IssueLogInvolvedPersonListingModel model) { var issuelogInvolvedPerson = _involvedPersonService.GetById(model.Id); var userId = _userManager.GetUserId(User); var user = _userManager.FindByIdAsync(userId).Result; var notification = new Notification(); if (model.IsStart) { issuelogInvolvedPerson.ReceiveDate = DateTime.Now; issuelogInvolvedPerson.ExpectedHour = model.ExpectedHour; notification = new Notification { UserFrom = user.Id, UserFromImage = user.ProfileImageUrl, UserTo = issuelogInvolvedPerson.IssueLog.EntryBy.Id, Header = issuelogInvolvedPerson.IssueLog.Project.Name + "(" + issuelogInvolvedPerson.IssueLog.Project.Company.Name + ")", Message = user.UserName + " has started working on " + issuelogInvolvedPerson.IssueLog.Header + ". Expected Hour is " + model.ExpectedHour, IsRead = false }; } else { issuelogInvolvedPerson.IsComplete = true; issuelogInvolvedPerson.HoursToComplete = model.HoursToComplete; issuelogInvolvedPerson.SubmitDate = DateTime.Now; notification = new Notification { UserFrom = user.Id, UserFromImage = user.ProfileImageUrl, UserTo = issuelogInvolvedPerson.IssueLog.EntryBy.Id, Header = issuelogInvolvedPerson.IssueLog.Project.Name + "(" + issuelogInvolvedPerson.IssueLog.Project.Company.Name + ")", Message = user.UserName + " has completed this task - " + issuelogInvolvedPerson.IssueLog.Header + ". Time taken : " + model.HoursToComplete + " hours", IsRead = false }; } await _involvedPersonService.UpdateIssueLog(issuelogInvolvedPerson); _notificationService.Create(notification); return(RedirectToAction("Index", "InvolvedPerson", new { id = 0 })); }