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);
            }
        }
예제 #2
0
        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
                });
            }
        }