Example #1
0
        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));
                }
            }
        }
Example #3
0
        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));
            }
        }
Example #4
0
        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));
            }
        }