public async Task <KIM> CreateNewKIM(int itempengajuanid, KIM kim) { try { var pengajuanItem = _context.PengajuanItems.Where(xx => xx.Id == itempengajuanid) .Include(x => x.Truck).FirstOrDefault(); var tracker = _context.ChangeTracker.Entries(); var truck = _context.Trucks.Where(xx => xx.Id == pengajuanItem.Truck.Id).Include(xx => xx.Kims).FirstOrDefault(); _context.ChangeTracker.Clear(); _context.Attach(truck); truck.Kims.Add(kim); var persetujuan = new Persetujuan { User = _userLogin, StatusPersetujuan = Helpers.StatusPersetujuan.Complete, ApprovedBy = Helpers.UserType.Administrator, ApprovedDate = DateTime.Now }; _context.Entry(persetujuan.User).State = EntityState.Unchanged; _context.Attach(pengajuanItem); pengajuanItem.Persetujuans.Add(persetujuan); var result = await _context.SaveChangesAsync(); return(kim); } catch (System.Exception ex) { throw new SystemException(ex.Message); } }
public async Task <IActionResult> CreateKim(int id, KIM kim) { try { var user = await Request.GetUser(); administrator = UserProxy.GetAdministratorProxy(user, _userService); var model = await administrator.CreateNewKIM(id, kim); if (model == null) { return(BadRequest(new { message = "Username or password is incorrect" })); } return(Ok(model)); } catch (System.Exception ex) { return(BadRequest(ex.Message)); } }
public Task PrintKIM(KIM kim) { throw new System.NotImplementedException(); }
private Task ProccessKIM(KIM item, KIMState kimState) { if (kimState == null) { kimState = new KIMState() { Id = item.Id }; states.Add(kimState); } //umur KIM if (!kimState.KIM) { var ageOfKIM = new Age(DateTime.Now, item.EndDate); if (item.EndDate > DateTime.Now && ageOfKIM.Years == 0 && ageOfKIM.Months <= 1) { SendMessageOFKIM(item, ageOfKIM, "KIM"); kimState.KIM = true; } } if (!kimState.Truck) { if ((DateTime.Now.Year - item.Truck.CarCreated) <= 1) { SendMessageOFKIM(item, null, "Kendaraan"); kimState.Truck = true; } } //umur Kendaraan if (!kimState.Driver) { var ageOfDriver = item.Truck.DriverAge; if (ageOfDriver.Years == 49 && ageOfDriver.Months >= 11) { SendMessageOFKIM(item, ageOfDriver, "Driver"); kimState.Driver = true; } } //age of Driver if (!kimState.AssDriver) { var ageOfAssDriver = item.Truck.AssDriverAge; if (ageOfAssDriver.Years == 54 && ageOfAssDriver.Months >= 11) { SendMessageOFKIM(item, ageOfAssDriver, "AssDriver"); kimState.AssDriver = true; } } _logger.LogInformation($"Iterasi {executionCount++}"); return(Task.CompletedTask); //Send email }
private void SendMessageOFKIM(KIM kim, Age age, string subject) { using (var service = _serviceProvider.CreateScope()) { var emailService = service.ServiceProvider.GetRequiredService <IEmailService>(); string template = ""; switch (subject) { case "KIM": template = @" <h2>Masa Berlaku Kim Akan Segara Berakhir</h2> <div class='inputData'> <label>Nomor KIM </label> <h4>[nokim]</h4> </div> <div class='inputData'> <label>Tanggal Berakhir Kim</label> <h4>[tanggal]</h4> </div> "; template = template .Replace("[nokim]", kim.KimNumber) .Replace("[tanggal]", kim.EndDate.ToString()) ; break; case "Kendaraan": template = @" <h2>Umur Kendaraan Anda Akan Segera 10 Tahun</h2>"; break; case "Driver": template = @" <h2>Umur Sopir Akan Melewati Batas Maximum !</h2> <div class='inputData'> <label>Nama Supir </label> <h4>[sopir]</h4> </div> <div class='inputData'> <label>Umur Sekarang </label> <h4>[tanggal]</h4> </div> "; template = template .Replace("[sopir]", kim.Truck.DriverName) .Replace("[tanggal]", $"{age.Years} Tahun, {age.Months} Bulan, {age.Days} Hari") ; break; case "AssDriver": template = @" <h2>Umur Assisten Driver/Kernet Akan Melewati Batas Maximum ! </h2> <div class='inputData'> <label>Nama Asisten Supir/Kernet</label> <h4>[assopir]</h4> </div> <div class='inputData'> <label>Tanggal Berakhir Kim</label> <h4>[tanggal]</h4> </div> "; template = template .Replace("[assopir]", kim.Truck.AssdriverName) .Replace("[tanggal]", $"{age.Years} Tahun, {age.Months} Bulan, {age.Days} Hari") ; break; } template = Helpers.EmailHelper.CreateNotification(template); emailService.SendEmail(new MailRequest { ToEmail = kim.Truck.Company.Email, Subject = "Masa Berlaku Kim Akan Berakhir !", Body = template }); } }