public async Task <IActionResult> PostBill(AccidentBill bill) { try { var currentUser = (from u in dbContext.Users where u.Email == User.Identity.Name select u).FirstOrDefault(); FMSAccidentalCheck check = (from c in dbContext.FMSAccidentalCheckList where c.Id == bill.CheckPointId select c).SingleOrDefault(); check.MaintenanceStatus = CheckMaintenanceStatus.InProgress; check.Remarks = bill.Remarks; FMSAccidentalCheckComment newComment = new FMSAccidentalCheckComment() { Id = Guid.NewGuid(), FMSAccidentalCheckId = check.Id, FMSAccidentId = check.FMSAccidentId, Comment = bill.BillAmount.ToString(), FMSUserId = new Guid((from u in dbContext.Users where u.Email == User.Identity.Name select u.Id).SingleOrDefault()), FMSVehicleId = check.FMSVehicleId, VehicleNumber = check.VehicleNumber, LastUpdated = DateTime.Now, Mentions = "" }; await dbContext.FMSAccidentalCheckComments.AddAsync(newComment); bill.Id = new Guid(); await dbContext.AccidentBills.AddAsync(bill); check.CommentCount = await(from c in dbContext.FMSAccidentalCheckComments where c.FMSAccidentalCheckId == bill.CheckPointId select c).CountAsync(); Accident accident = await dbContext.Accidents.Where(x => x.Id == check.FMSAccidentId).Select(x => x).SingleOrDefaultAsync(); accident.LastUpdated = PakistanDateTime.Now; check.LastUpdated = PakistanDateTime.Now; await dbContext.SaveChangesAsync(); return(Ok()); } catch (Exception ex) { return(BadRequest(ex.ToString())); } }
public async Task <IActionResult> AddCheckListPointComment(FMSAccidentalCheckCommentVM comment) { try { var currentUser = (from u in dbContext.Users where u.Email == User.Identity.Name select u).FirstOrDefault(); FMSAccidentalCheckComment newComment = new FMSAccidentalCheckComment() { Id = Guid.NewGuid(), FMSAccidentalCheckId = comment.FMSAccidentalCheckId, FMSAccidentId = comment.FMSAccidentId, Comment = comment.Comment, FMSUserId = new Guid((from u in dbContext.Users where u.Email == User.Identity.Name select u.Id).SingleOrDefault()), FMSVehicleId = comment.FMSVehicleId, VehicleNumber = comment.VehicleNumber, LastUpdated = DateTime.Now, Mentions = comment.Mentions }; await dbContext.FMSAccidentalCheckComments.AddAsync(newComment); await dbContext.SaveChangesAsync(); FMSAccidentalCheck check = await(from a in dbContext.FMSAccidentalCheckList where a.Id == comment.FMSAccidentalCheckId select a).SingleOrDefaultAsync(); check.LastUpdated = PakistanDateTime.Now; //await dbContext.SaveChangesAsync(); check.CommentCount = await(from c in dbContext.FMSAccidentalCheckComments where c.FMSAccidentalCheckId == comment.FMSAccidentalCheckId select c).CountAsync(); check.MaintenanceStatus = CheckMaintenanceStatus.InProgress; Accident accident = await dbContext.Accidents.Where(x => x.Id == comment.FMSAccidentId).Select(x => x).SingleOrDefaultAsync(); accident.LastUpdated = PakistanDateTime.Now; await dbContext.SaveChangesAsync(); if (!string.IsNullOrEmpty(comment.Mentions)) { string[] mentions = comment.Mentions.Split(','); foreach (var mention in mentions) { ApplicationUser user = (from u in dbContext.Users where u.Id == mention select u).FirstOrDefault(); await hubContext.Clients.All.SendAsync("ReceiveMessage", user.Email, $"Notification for Vehicle Number {check.VehicleNumber}", $"{currentUser.Name} mentioned you in a comment under accidental check list point {check.Description}"); await SMSService.SendSMS($"Notification for Vehicle Number {check.VehicleNumber}: {currentUser.Name} mentioned you in a comment under accidental check list point {check.Description}", "03035650720"); SMSService.SendMail($"Notification for Vehicle Number {check.VehicleNumber}", $"{currentUser.Name} mentioned you in a comment under accidental check list point {check.Description}", "*****@*****.**"); } } return(Ok()); } catch (Exception ex) { return(BadRequest(ex.ToString())); } }