コード例 #1
0
ファイル: EmergencyController.cs プロジェクト: szrz92/FMS
        public async Task <IActionResult> PostBillDetail(BillDetailVM billDetail)
        {
            try
            {
                FMSEmergencyCheck check = (from c in dbContext.FMSEmergencyCheckList
                                           where c.Id == billDetail.CheckPointId
                                           select c).SingleOrDefault();
                check.MaintenanceStatus = CheckMaintenanceStatus.InProgress;

                EmergencyBillDetail detail = new()
                {
                    Id             = Guid.NewGuid(),
                    CheckPointId   = billDetail.CheckPointId,
                    ServiceType    = billDetail.ServiceType,
                    SubServiceType = billDetail.SubServiceType,
                    Amount         = Convert.ToString(billDetail.Amount)
                };
                await dbContext.EmergencyBillDetails.AddAsync(detail);

                await dbContext.SaveChangesAsync();

                return(Ok());
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.ToString()));
            }
        }
コード例 #2
0
ファイル: EmergencyController.cs プロジェクト: szrz92/FMS
        public async Task <IActionResult> AddCheckListPointComment(FMSEmergencyCheckCommentVM comment)
        {
            try
            {
                var currentUser = (from u in dbContext.Users
                                   where u.Email == User.Identity.Name
                                   select u).FirstOrDefault();
                FMSEmergencyCheckComment newComment = new()
                {
                    Id = Guid.NewGuid(),
                    FMSEmergencyCheckId = comment.FMSEmergencyCheckId,
                    FMSEmergencyId      = comment.FMSEmergencyId,
                    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.FMSEmergencyCheckComments.AddAsync(newComment);

                await dbContext.SaveChangesAsync();

                FMSEmergencyCheck check = await(from a in dbContext.FMSEmergencyCheckList
                                                where a.Id == comment.FMSEmergencyCheckId
                                                select a).SingleOrDefaultAsync();
                check.CommentCount = await(from c in dbContext.FMSEmergencyCheckComments
                                           where c.FMSEmergencyCheckId == comment.FMSEmergencyCheckId
                                           select c).CountAsync();
                check.MaintenanceStatus = CheckMaintenanceStatus.InProgress;
                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 emergency check list point {check.Description}");

                        await SMSService.SendSMS($"Notification for Vehicle Number {check.VehicleNumber}: {currentUser.Name} mentioned you in a comment under emergency check list point {check.Description}", "03035650720");

                        SMSService.SendMail($"Notification for Vehicle Number {check.VehicleNumber}", $"{currentUser.Name} mentioned you in a comment under emergency check list point {check.Description}", "*****@*****.**");
                    }
                }

                return(Ok());
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.ToString()));
            }
        }
コード例 #3
0
ファイル: EmergencyController.cs プロジェクト: szrz92/FMS
        public async Task <IActionResult> GetCheckListPointMarkDone(ApiRequest request)
        {
            try
            {
                FMSEmergencyCheck check = await dbContext.FMSEmergencyCheckList.Where(x => x.Id == request.FMSEmergencyCheckId).Select(x => x).SingleOrDefaultAsync();

                Emergency emergency = await dbContext.Emergencies.Where(x => x.Id == check.FMSEmergencyId).SingleOrDefaultAsync();

                check.MaintenanceStatus = CheckMaintenanceStatus.Done;
                emergency.LastUpdated   = PakistanDateTime.Now;
                await dbContext.SaveChangesAsync();

                string title        = $"Accidental Job Vehicle Number {check.VehicleNumber}";
                string notification = $"Check Point {check.Description} marked as done";
                await hubContext.Clients.All.SendAsync("ReceiveMessageAllUsers",
                                                       User.Identity.Name,
                                                       title,
                                                       notification);

                await SMSService.SendSMS(title + ": " + notification, "03035650720");

                SMSService.SendMail(title, notification, "*****@*****.**");

                return(Ok());
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.ToString()));
            }
        }
コード例 #4
0
ファイル: EmergencyController.cs プロジェクト: szrz92/FMS
 public async Task <IActionResult> GetCheckListPointDetails(ApiRequest request)
 {
     try
     {
         FMSEmergencyCommentModalVM modal = new();
         FMSEmergencyCheck          check = await(from c in dbContext.FMSEmergencyCheckList where c.Id == request.FMSEmergencyCheckId select c).SingleOrDefaultAsync();
         modal.FMSEmergencyCheckId = check.Id;
         modal.FMSEmergencyId      = check.FMSEmergencyId;
         modal.FMSVehicleId        = check.FMSVehicleId;
         modal.CheckPointName      = check.Description;
         modal.VehicleNumber       = request.VehicleNumber;
         if (check.Description.Contains("Bills Posting"))
         {
             modal.CommentModalType = CommentModalType.BillPosting;
         }
         else if (check.Description.Contains("Assigning Workshop"))
         {
             modal.CommentModalType = CommentModalType.AssignWorkshop;
         }
         else
         {
             modal.CommentModalType = CommentModalType.General;
         }
         modal.Comments = await(from c in dbContext.FMSEmergencyCheckComments
                                where c.FMSEmergencyCheckId == check.Id
                                select new FMSEmergencyCheckCommentVM()
         {
             FMSEmergencyCheckId = c.FMSEmergencyCheckId,
             FMSEmergencyId      = c.FMSEmergencyId,
             Comment             = c.Comment,
             FMSVehicleId        = c.FMSVehicleId,
             Id            = c.Id,
             LastUpdated   = c.LastUpdated,
             FMSUserId     = c.FMSUserId,
             Mentions      = c.Mentions,
             Name          = (from u in dbContext.Users where u.Id == c.FMSUserId.ToString() select u.Name).SingleOrDefault(),
             VehicleNumber = c.VehicleNumber
         }).OrderByDescending(x => x.LastUpdated).ToListAsync();
         modal.Images = await(from i in dbContext.FMSEmergencyCheckImages
                              where i.FMSEmergencyCheckId == check.Id
                              select new FMSEmergencyCheckImageVM()
         {
             FMSEmergencyId      = i.FMSEmergencyId,
             FMSEmergencyCheckId = i.FMSEmergencyCheckId,
             FMSVehicleId        = i.FMSVehicleId,
             Id          = i.Id,
             Image       = i.Image,
             LastUpdated = i.LastUpdated
         }).ToListAsync();
         return(Ok(modal));
     }
     catch (Exception ex)
     {
         return(BadRequest(ex.ToString()));
     }
 }
コード例 #5
0
ファイル: EmergencyController.cs プロジェクト: szrz92/FMS
        public async Task <IActionResult> PostBill(EmergencyBill bill)
        {
            try
            {
                var currentUser = (from u in dbContext.Users
                                   where u.Email == User.Identity.Name
                                   select u).FirstOrDefault();

                FMSEmergencyCheck check = (from c in dbContext.FMSEmergencyCheckList
                                           where c.Id == bill.CheckPointId
                                           select c).SingleOrDefault();
                check.MaintenanceStatus = CheckMaintenanceStatus.InProgress;
                FMSEmergencyCheckComment newComment = new()
                {
                    Id = Guid.NewGuid(),
                    FMSEmergencyCheckId = check.Id,
                    FMSEmergencyId      = check.FMSEmergencyId,
                    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.FMSEmergencyCheckComments.AddAsync(newComment);

                await dbContext.SaveChangesAsync();

                bill.Id = new Guid();
                await dbContext.EmergencyBills.AddAsync(bill);

                await dbContext.SaveChangesAsync();

                check.CommentCount = await(from c in dbContext.FMSEmergencyCheckComments
                                           where c.FMSEmergencyCheckId == bill.CheckPointId
                                           select c).CountAsync();
                Emergency emergency = await dbContext.Emergencies.Where(x => x.Id == check.FMSEmergencyId).Select(x => x).SingleOrDefaultAsync();

                emergency.LastUpdated = PakistanDateTime.Now;
                check.LastUpdated     = PakistanDateTime.Now;
                await dbContext.SaveChangesAsync();

                return(Ok());
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.ToString()));
            }
        }
コード例 #6
0
ファイル: VendorsController.cs プロジェクト: szrz92/FMS
        public async Task <IActionResult> AssignVendors(WorkshopVM workshopVM)
        {
            try
            {
                string code = "", name = "";
                if (workshopVM.Type == "Approved")
                {
                    var vendor = await(from a in viewsContext.PblVendorManagements
                                       where a.XCode == workshopVM.Code
                                       select a).FirstOrDefaultAsync();
                    code = vendor.XCode;
                    name = vendor.XName;
                }
                else if (workshopVM.Type == "Un Approved")
                {
                    var driver = await(from d in dbContext.Drivers
                                       where d.Code == workshopVM.Code
                                       select d).FirstOrDefaultAsync();
                    code = driver.Code;
                    name = driver.Name;
                }

                AssignedWorkshop workshop = new AssignedWorkshop()
                {
                    Id           = Guid.NewGuid(),
                    IncidentId   = workshopVM.IncidentId,
                    SupplierType = workshopVM.Type,
                    SupplierCode = code,
                    SupplierName = name,
                    Remarks      = workshopVM.Remarks
                };
                await dbContext.AssignedWorkshops.AddAsync(workshop);

                if (await dbContext.SaveChangesAsync() > 0)
                {
                    if (workshopVM.IncidentType == "Emergency")
                    {
                        FMSEmergencyCheck check = await(from c in dbContext.FMSEmergencyCheckList
                                                        where c.Id == workshopVM.CheckId
                                                        select c).FirstOrDefaultAsync();
                        check.LastUpdated       = PakistanDateTime.Now;
                        check.MaintenanceStatus = Shared.Enums.CheckMaintenanceStatus.InProgress;

                        Emergency emergency = await(from c in dbContext.Emergencies
                                                    where c.Id == workshopVM.IncidentId
                                                    select c).FirstOrDefaultAsync();
                        emergency.LastUpdated = PakistanDateTime.Now;

                        if (await dbContext.SaveChangesAsync() > 0)
                        {
                            return(Ok());
                        }
                        else
                        {
                            return(BadRequest());
                        }
                    }
                    else if (workshopVM.IncidentType == "Accident")
                    {
                        FMSAccidentalCheck check = await(from c in dbContext.FMSAccidentalCheckList
                                                         where c.Id == workshopVM.CheckId
                                                         select c).FirstOrDefaultAsync();
                        check.LastUpdated       = PakistanDateTime.Now;
                        check.MaintenanceStatus = Shared.Enums.CheckMaintenanceStatus.InProgress;

                        Accident accident = await(from c in dbContext.Accidents
                                                  where c.Id == workshopVM.IncidentId
                                                  select c).FirstOrDefaultAsync();
                        accident.LastUpdated = PakistanDateTime.Now;

                        if (await dbContext.SaveChangesAsync() > 0)
                        {
                            return(Ok());
                        }
                        else
                        {
                            return(BadRequest());
                        }
                    }
                    return(NotFound());
                }
                else
                {
                    return(BadRequest());
                }
            }
            catch (Exception)
            {
                return(BadRequest());
            }
        }