public async Task <IActionResult> GetEquipmentByscheduleId(int csId, int scId, int lId)
        {
            CurrentUser cUser = new CurrentUser(HttpContext, _configuration);

            try
            {
                var result = await scheduleRepo.GetEquipmentByScheduleId(csId, scId, lId, string.Empty);

                await auditLogService.LogActivity(cUser.UserId, cUser.HostIP, cUser.SessionId, "Schedule", "Loaded Equipments based on selected Schedule.");

                return(Ok(result));
            }
            catch (CustomException cex)
            {
                var responseObj = new EmaintenanceMessage(cex.Message, cex.Type, cex.IsException, cex.Exception?.ToString());
                return(StatusCode(StatusCodes.Status500InternalServerError, responseObj));
            }
            catch (Exception ex)
            {
                return(Ok(new EmaintenanceMessage(ex.Message)));
            }
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> GenerateJobs(int csId, int ssId)
        {
            try
            {
                CurrentUser cUser = new CurrentUser(HttpContext, _configuration);

                var sems = (List <ScheduleEntityModel>) await scheduleRepo.GetScheduleByStatus(csId, ssId, 0, 0, "GenerateJob");

                var equipments = (List <ScheduleEntityModel>) await scheduleRepo.GetEquipmentByScheduleId(csId, ssId, 0, "GenerateJob");

                if (sems != null && sems.Count > 0)
                {
                    var sem = sems[0];
                    List <JobServicesViewModel>   jsvms = null;
                    List <JobEquipmentsViewModel> jevms = null;

                    /** Deserializing the Schedule Service Object and Looping into Job Service Object */
                    List <ScheduleServicesViewModel> ssvms = JsonConvert.DeserializeObject <List <ScheduleServicesViewModel> >(sem.ScheduleServices);
                    if (ssvms != null && ssvms.Count > 0)
                    {
                        jsvms = new List <JobServicesViewModel>();
                        foreach (ScheduleServicesViewModel ssvm in ssvms)
                        {
                            JobServicesViewModel jsvm = new JobServicesViewModel
                            {
                                JobServiceId = 0,
                                ServiceId    = ssvm.ServiceId,
                                ServiceName  = ssvm.ServiceName,
                                Active       = ssvm.Active,
                                UserId       = cUser.UserId
                            };
                            jsvms.Add(jsvm);
                        }
                    }

                    /** Deserializing the Schedule Equipement Object and Looping into Job Service Object */
                    List <ScheduleEquipmentsViewModel> sevms = JsonConvert.DeserializeObject <List <ScheduleEquipmentsViewModel> >(equipments[0].ScheduleEquipments);
                    if (sevms != null && sevms.Count > 0)
                    {
                        jevms = new List <JobEquipmentsViewModel>();
                        foreach (ScheduleEquipmentsViewModel sevm in sevms)
                        {
                            if (sevm.Active == "Y")
                            {
                                JobEquipmentsViewModel jsvm = new JobEquipmentsViewModel
                                {
                                    JobEquipmentId = 0,
                                    EquipmentId    = sevm.EquipmentId,
                                };
                                jevms.Add(jsvm);
                            }
                        }
                    }

                    foreach (DateTime StartDate in DateUtils.GetDatesBetweenRange(sem.StartDate, sem.EndDate, sem.IntervalDays))
                    {
                        JobViewModel jvm = new JobViewModel
                        {
                            JobId           = 0,
                            ScheduleSetupId = sem.ScheduleSetupId,
                            JobName         = sem.ScheduleName,
                            ClientSiteId    = csId,
                            EstStartDate    = StartDate,
                            EstEndDate      = StartDate.AddDays(sem.EstJobDays - 1),
                            JobServices     = jsvms,
                            JobEquipments   = jevms,
                            UserId          = cUser.UserId
                        };
                        await jobRepo.SaveOrUpdate(jvm);
                    }
                }
                await auditLogService.LogActivity(cUser.UserId, cUser.HostIP, cUser.SessionId, "Jobs", "Job Generated.");

                return(Ok());
            }
            catch (CustomException cex)
            {
                var responseObj = new EmaintenanceMessage(cex.Message, cex.Type, cex.IsException, cex.Exception?.ToString());
                return(StatusCode(StatusCodes.Status500InternalServerError, responseObj));
            }
            catch (Exception ex)
            {
                return(Ok(new EmaintenanceMessage(ex.Message)));
            }
        }