public async Task <IActionResult> Pemenang([FromBody] Pemenang pemenang) { try { _context.Pemenang.Add(pemenang); var result = _context.SaveChanges(); if (result <= 0) { throw new SystemException("Pemenang Tidak Berhasil Disimpan"); } var karyawan = _context.Karyawan.Where(x => x.Id == pemenang.KaryawanId).FirstOrDefault(); if (karyawan != null) { var message = new NotificationModel("System", "Undian", $"Pemenang Undian Peride Ini '{karyawan.NamaKaryawan}'", NotificationType.Public); var message1 = new NotificationModel("System", "Undian", $"Anda Adalah Pemeang Undian Periode Ini", NotificationType.Private); message1.UserId = karyawan.UserId; await _fmc.SendMessage(message, "all"); await _fmc.SendMessagePrivate(message1, karyawan.DeviceId); } return(Ok(true)); } catch (System.Exception ex) { return(BadRequest(ex.Message)); } }
public async Task <IActionResult> Post([FromBody] Pelanggaran value) { var user = await _userManager.GetUserAsync(User); var pelapor = _context.Karyawan.Where(x => x.UserId == user.Id).FirstOrDefault(); var terlapor = _context.Karyawan.Where(x => x.Id == value.TerlaporId).FirstOrDefault(); using (var transaction = _context.Database.BeginTransaction()) { try { foreach (var item in value.Files) { var path = Helpers.GetPath(item.FileType); item.FileName = Helpers.CreateFileName(item.FileType); item.Thumb = Helpers.CreateFileName("image"); System.IO.File.WriteAllBytes(path + item.FileName, item.Data); System.IO.File.WriteAllBytes(Helpers.ThumbPath + item.Thumb, Helpers.CreateThumb(item.Data)); item.Data = null; } value.PelaporId = pelapor.Id; value.TerlaporId = value.TerlaporId; value.PerusahaanId = value.PerusahaanId; value.Terlapor = null; _context.Pelanggaran.Add(value); var saved = _context.SaveChanges(); if (value.Id <= 0) { throw new SystemException("Data Perusahaan Tidak Berhasil Disimpan !"); } transaction.Commit(); var message = new NotificationModel("System", "Pelanggaran", "Anda Telah Melakukan Pelanggaran !", NotificationType.Private); await _fcm.SendMessagePrivate(message, terlapor.DeviceId); return(Ok(value)); } catch (Exception ex) { transaction.Rollback(); return(BadRequest(ex.Message)); } } }
public async Task <IActionResult> Post([FromBody] Absen value) { try { var result = await _absen.absen(value.KaryawanId, value.AbsenType); if (result == null) { throw new SystemException("Data Perusahaan Tidak Berhasil Disimpan !"); } var message = new NotificationModel("System", "Absen", $"Anda Telah Berhasil Absen {value.AbsenType} !", NotificationType.Private); message.UserId = value.Karyawan.UserId; await _fcm.SendMessagePrivate(message, value.Karyawan.DeviceId); return(Ok(result)); } catch (System.Exception ex) { return(BadRequest(ex.Message)); } }
public async Task <IActionResult> GetAsync() { try { var actived = await _periode.ActivePeriode(); if (actived == null) { throw new SystemException("Periode Aktif Belum Ditemukan"); } var pelanggarans = _context.Pelanggaran.Where(x => x.Tanggal >= actived.Mulai && x.Tanggal <= actived.Selesai) .Include(x => x.ItemPelanggarans).ThenInclude(x => x.DetailLevel).ThenInclude(x => x.Level) .Include(x => x.Perusahaan); var a = pelanggarans.SelectMany(x => x.ItemPelanggarans); var perusahaan = pelanggarans.ToList().GroupBy(x => x.PerusahaanId); var dataperusahaan = new List <dynamic>(); foreach (var item in perusahaan) { var dataitem = item.FirstOrDefault(); dataperusahaan.Add(new { namaperusahaan = dataitem.Perusahaan.Nama, total = item.Count() }); } var datas = new List <dynamic>(); var group = a.ToList().GroupBy(x => x.DetailLevel.LevelId).ToList(); foreach (var items in group) { var dataTemp = items.FirstOrDefault(); dynamic data = new { LevelId = dataTemp.DetailLevel.LevelId, Jenispelanggaran = dataTemp.DetailLevel.Nama, Perusahaan = dataTemp.NilaiPerusahaan, Karyawan = items.Count(), // Tanggal = dataTemp., Level = dataTemp.DetailLevel.Level.Nama, Today = pelanggarans.Where(x => x.Tanggal.Year == DateTime.Now.Year && x.Tanggal.Month == DateTime.Now.Month && x.Tanggal.Day == DateTime.Now.Day).Count() }; datas.Add(data); } var karyawan = _context.Karyawan.Find(1); if (karyawan != null) { var notif = new NotificationModel { Body = "Body Message", Title = "Titale", NotificationType = NotificationType.Private, Created = DateTime.Now, Sender = "HRD", UserId = karyawan.UserId, Id = 0 }; notif.UserId = karyawan.UserId; await _fcm.SendMessagePrivate(notif, karyawan.DeviceId); notif.UserId = string.Empty; notif.NotificationType = NotificationType.Public; await _fcm.SendMessage(notif, "all"); } return(Ok(new { datas = datas.ToList(), perusahaan = dataperusahaan })); } catch (System.Exception ex) { return(BadRequest(ex.Message)); } }