Пример #1
0
        public async Task <Response <FormBantuanHukumResponse> > request(FormBantuanHukumRequest request)
        {
            Response <FormBantuanHukumResponse> response = new Response <FormBantuanHukumResponse> {
            };
            var status = await this.uploadFile(request.File, string.Empty);

            if (status.Status)
            {
                return(this.bantuanHukumService.request(request, status.FileName));
            }
            else
            {
                // Error file upload
                response.message_type = 2;
                response.message      = string.IsNullOrWhiteSpace(status.FileName) ? "Attachment file mohon diisi":status.FileName;
            }
            return(response);
        }
        public Response <FormBantuanHukumResponse> request(FormBantuanHukumRequest request, string fname)
        {
            Response <FormBantuanHukumResponse> response = new Response <FormBantuanHukumResponse>();


            // Add New
            if (request.ID == 0)
            {
                var q = this.Db.LogEmails.Where(a => a.To == request.Email && a.Blocked == true);
                if (q.Count() > 0)
                {
                    response.message_type = 2;
                    response.message      = "Maaf email anda termasuk dalam daftar blokir tidak bisa digunakan untuk pelaporan ini";
                    return(response);
                }

                // Get Country ID
                var findKewarganegaraan = this.Db.Countries.Where(a => a.CountryID == request.Kewarganegaraan);

                Country currentKewarganegaraan = new Country();
                if (findKewarganegaraan.Count() > 0)
                {
                    currentKewarganegaraan = findKewarganegaraan.First();
                }

                // Get Status ' Sedang di Proses'
                var           statusFind = this.Db.StatusBantuan.Where(a => a.ID == 1);
                StatusBantuan status     = new StatusBantuan();
                if (statusFind.Count() > 0)
                {
                    status = statusFind.First();
                }

                //string filename = string.Empty;

                string kodeLaporan = Guid.NewGuid().ToString().Substring(0, 5);

                var data = new data_access.entities.BantuanHukum
                {
                    Agama           = request.Agama,
                    Email           = request.Email,
                    Identitas       = request.Identitas,
                    IsiPermohonan   = request.IsiPermohonan,
                    JenisKelamin    = request.JenisKelamin,
                    Kewarganegaraan = currentKewarganegaraan,
                    NamaLengkap     = request.NamaLengkap,
                    NoIdentitas     = request.NoIdentitas,
                    Pekerjaan       = request.Pekerjaan,
                    Telpn           = request.Telpn,
                    Umur            = request.Umur,
                    FileName        = fname,
                    LastStatus      = status,
                    CreatedDate     = DateTime.Now,
                    KodeLaporan     = kodeLaporan
                };
                this.Db.BantuanHukum.Add(data);
                this.Db.SaveChanges();

                // Generate Kode Laporan 'Update'

                var datas = this.Db.BantuanHukum.Where(a => a.ID == data.ID);
                if (datas.Count() > 0)
                {
                    data             = datas.First();
                    data.KodeLaporan = kodeLaporan + data.ID;
                    data.LastStatus  = status; // Update Last Status Pengaduan
                    this.Db.BantuanHukum.Update(data);
                    this.Db.SaveChanges();
                }


                // Create Conversation
                // Copy Message from header to Activity with Status
                this.createConversation(data.KodeLaporan, 0, request.IsiPermohonan, status.ID, "user_" + data.KodeLaporan, string.Empty);


                // Get Template Email
                var template = this.getTemplate(TemplateEmailConstanta.EMAIL_BALASAN_AWAL_LAPORAN);

                string body = template.Message;
                body = body.Replace("{NAMALENGKAP}", request.NamaLengkap).Replace("{KODELAPORAN}", data.KodeLaporan);
                // Send Email
                var email = this.createEmail(template.Title, request.Email, body).GetAwaiter().GetResult();


                response.data = new FormBantuanHukumResponse {
                    ID = data.ID, KodeLaporan = data.KodeLaporan
                };
            }

            return(response);
        }