0rx

PX

0rx
Oct 14th, 2024
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 17.55 KB | None | 0 0
  1. using AutoMapper;
  2. using Azure;
  3. using BI.Elic.Services.MasterAPI.DBs;
  4. using BI.Elic.Services.MasterAPI.Models;
  5. using BI.Elic.Services.MasterAPI.Models.Dto;
  6. using Microsoft.AspNetCore.Http;
  7. using Microsoft.AspNetCore.Mvc;
  8. using Newtonsoft.Json;
  9. using Microsoft.EntityFrameworkCore;
  10. using System.ComponentModel.DataAnnotations;
  11. using Microsoft.AspNetCore.Authorization;
  12. using BI.Elic.Services.MasterAPI.Modules.Security;
  13. using static System.Runtime.InteropServices.JavaScript.JSType;
  14.  
  15. namespace BI.Elic.Services.MasterAPI.Controllers
  16. {
  17.    // [Authorization()]
  18.     [Route("api/admin/konsultasiPCM")]
  19.     [ApiController]
  20.     //[Authorize]
  21.     public class AdminKonsultasiPCMAPIController : ControllerBase
  22.     {
  23.         private readonly AppDbContext db;
  24.         private ApiResponse response;
  25.         private IMapper _mapper;
  26.  
  27.         public IConfiguration Configuration { get; private set; }
  28.         public IHttpContextAccessor HttpContextAccessor { get; set; }
  29.  
  30.         public AdminKonsultasiPCMAPIController(IConfiguration configuration, IHttpContextAccessor httpContextAccessor, IMapper mapper) : base()
  31.         {
  32.             Configuration = configuration;
  33.             if (HttpContextAccessor == null)
  34.             {
  35.                 HttpContextAccessor = httpContextAccessor;
  36.             }
  37.             this.db = new AppDbContext(
  38.                                 new DbContextOptionsBuilder<AppDbContext>()
  39.                                 //.UseLazyLoadingProxies()
  40.                                 .UseSqlServer(Configuration.GetConnectionString("DefaultConnection"), b => b.UseNetTopologySuite())
  41.                                 .Options
  42.                             );
  43.  
  44.             response = new ApiResponse();
  45.             _mapper = mapper;
  46.         }
  47.  
  48.         [HttpGet]
  49.         public IActionResult Get()
  50.         {
  51.             try
  52.             {
  53.                 //IEnumerable<PemohonKonsultasiPCM> objlist = db.KonsultasiPCM.ToList();
  54.                 IEnumerable<ViewKonsultasiPCM> objlist = db.ViewKonsultasiPCM.FromSqlRaw(ViewKonsultasiPCM.GetViewSQL());
  55.                 if (objlist == null)
  56.                 {
  57.                     response.status = false;
  58.                     response.message = "Data tidak ditemukan";
  59.  
  60.                     return NotFound(response);
  61.                 }
  62.                 response.data = _mapper.Map<IEnumerable<ViewKonsultasiPCMDto>>(objlist);
  63.             }
  64.             catch (Exception ex) when (ex is ValidationException)
  65.             {
  66.                 response.status = false;
  67.                 response.message = ex.Message;
  68.  
  69.                 return BadRequest(response);
  70.             }
  71.             catch (Exception ex)
  72.             {
  73.                 // Log other unexpected exceptions
  74.                 //LogException(ex);
  75.                 response.status = false;
  76.                 response.message = ex.Message;
  77.  
  78.                 return BadRequest(response);
  79.             }
  80.  
  81.             return Ok(response);
  82.         }
  83.  
  84.         [HttpGet]
  85.         [Route("{id:int}")]
  86.         public IActionResult Get(int id)
  87.         {
  88.             try
  89.             {
  90.                 //PemohonKonsultasiPCM obj = db.KonsultasiPCM.First(u => u.konsultasipcmid == id);
  91.                 ViewKonsultasiPCM obj = db.ViewKonsultasiPCM.FromSqlRaw(ViewKonsultasiPCM.GetViewSQL()).First(u => u.konsultasipcmid == id);
  92.                 if (obj == null)
  93.                 {
  94.                     response.status = false;
  95.                     response.message = "Data tidak ditemukan";
  96.  
  97.                     return NotFound(response);
  98.                 }
  99.                 response.data = _mapper.Map<ViewKonsultasiPCMDto>(obj);
  100.             }
  101.             catch (Exception ex)
  102.             {
  103.                 response.status = false;
  104.                 response.message = ex.Message;
  105.  
  106.                 return BadRequest(response);
  107.             }
  108.  
  109.             return Ok(response);
  110.         }
  111.  
  112.         [HttpGet]
  113.         [Route("GetByCode/{code}")]
  114.         public IActionResult GetByCode(int code)
  115.         {
  116.             try
  117.             {
  118.                 //PemohonKonsultasiPCM obj = db.KonsultasiPCM.First(u => u.konsultasiid == code);
  119.                 ViewKonsultasiPCM obj = db.ViewKonsultasiPCM.FromSqlRaw(ViewKonsultasiPCM.GetViewSQL()).First(u => u.konsultasiid == code);
  120.                 if (obj == null)
  121.                 {
  122.                     response.status = false;
  123.                     response.message = "Data tidak ditemukan";
  124.  
  125.                     return NotFound(response);
  126.                 }
  127.  
  128.                 response.data = _mapper.Map<ViewKonsultasiPCM>(obj);
  129.             }
  130.             catch (Exception ex)
  131.             {
  132.                 response.status = false;
  133.                 response.message = ex.Message;
  134.  
  135.                 return BadRequest(response);
  136.             }
  137.  
  138.             return Ok(response);
  139.         }
  140.  
  141.         [HttpPost]
  142.         [Route("save")]
  143.         public IActionResult save([FromBody] ViewKonsultasiPCMDto ViewKonsultasiPCMDto)
  144.         {
  145.             try
  146.             {
  147.                 List<AdminKonsultasiDokumenDto> documentList = ViewKonsultasiPCMDto.AdminKonsultasiDokumenList.ToList();
  148.  
  149.                 foreach (var document in documentList)
  150.                 {
  151.                     if (document != null)
  152.                     {
  153.                         // Cek apakah dokumen dengan NamaFile dan KonsultasiId yang sama sudah ada
  154.                         var existingDocument = db.AdminKonsultasiDokumen
  155.                             .FirstOrDefault(d => d.FILENAME == document.FILENAME && d.KONSULTASIID == ViewKonsultasiPCMDto.konsultasiid);
  156.  
  157.                         if (existingDocument != null)
  158.                         {
  159.                             // Update dokumen yang sudah ada
  160.                             existingDocument.DOCUMENTNAME = document.FILENAME;
  161.                             existingDocument.FILEALT = document.FILEALT;
  162.                             existingDocument.FILEDATA = document.FILEDATA;
  163.                             existingDocument.DATEMODIFIED = DateTime.Now;
  164.                             existingDocument.CONTENTTYPE = document.CONTENTTYPE;
  165.                             existingDocument.MODIFIEDBY = HttpContext.Items["User"].ToString(); // sesuaikan user yang melakukan modifikasi
  166.  
  167.                             db.AdminKonsultasiDokumen.Update(existingDocument);
  168.                         }
  169.                         else
  170.                         {
  171.                             // Insert dokumen baru jika tidak ditemukan dokumen dengan nama yang sama
  172.                             var docEntity = new AdminKonsultasiDokumen
  173.                             {
  174.                                 KONSULTASIID = ViewKonsultasiPCMDto.konsultasiid,
  175.                                 FILENAME = document.FILENAME,
  176.                                 DOCUMENTNAME = document.DOCUMENTNAME,
  177.                                 FILEALT = document.FILEALT,
  178.                                 FILEDATA = document.FILEDATA,
  179.                                 DATECREATED = DateTime.Now,
  180.                                 DATEMODIFIED = DateTime.Now,
  181.                                 CONTENTTYPE = document.CONTENTTYPE,
  182.                                 STATUS = 1,
  183.                                 CREATEDBY = HttpContext.Items["User"].ToString(),
  184.                                 MODIFIEDBY = HttpContext.Items["User"].ToString()
  185.                             };
  186.                             db.AdminKonsultasiDokumen.Add(docEntity);
  187.                         }
  188.                     }
  189.                 }
  190.                 db.SaveChanges();
  191.  
  192.                 //Starts Here
  193.                 var existingEntity = db.Konsultasi.FirstOrDefault(e => e.konsultasiid == ViewKonsultasiPCMDto.konsultasiid);
  194.                 if (existingEntity != null)
  195.                 {
  196.                     existingEntity.workflowid = ViewKonsultasiPCMDto.workflowid;
  197.                     // Update fields lain sesuai kebutuhan
  198.                 }
  199.  
  200.                 // Update AdminKonsultasi
  201.                 var existingAdminKonsultasi = db.AdminKonsultasiClone
  202.                     .FirstOrDefault(a => a.KONSULTASIID == ViewKonsultasiPCMDto.konsultasiid);
  203.                 if (existingAdminKonsultasi != null)
  204.                 {
  205.                     existingAdminKonsultasi.ENTITASID = ViewKonsultasiPCMDto.entitasid;
  206.                     existingAdminKonsultasi.TIMEPCMCMID = ViewKonsultasiPCMDto.timepcmcmid;
  207.                     existingAdminKonsultasi.TIPEKONSULTASI = ViewKonsultasiPCMDto.tipeperizinanid;
  208.                     existingAdminKonsultasi.WORKFLOWID = ViewKonsultasiPCMDto.workflowid;
  209.                     db.AdminKonsultasiClone.Update(existingAdminKonsultasi);
  210.                 }
  211.  
  212.                 // Update AdminKonsultasiAwal
  213.                 var existingAdminKonsultasiPCM = db.AdminKonsultasiPCM
  214.                     .FirstOrDefault(a => a.KONSULTASIID == ViewKonsultasiPCMDto.konsultasiid);
  215.                 if (existingAdminKonsultasiPCM != null)
  216.                 {
  217.                     existingAdminKonsultasiPCM.TIPEPERIZINANID = ViewKonsultasiPCMDto.tipeperizinanid;
  218.                     existingAdminKonsultasiPCM.TOPICID = ViewKonsultasiPCMDto.topikid;
  219.                     existingAdminKonsultasiPCM.METODE = ViewKonsultasiPCMDto.metode;
  220.                     existingAdminKonsultasiPCM.LOKASI = ViewKonsultasiPCMDto.lokasi;
  221.                     db.AdminKonsultasiPCM.Update(existingAdminKonsultasiPCM);
  222.                 }
  223.  
  224.                 db.SaveChanges();
  225.  
  226.                 response.status = true;
  227.                 response.data = _mapper.Map<ViewKonsultasiPCM>(ViewKonsultasiPCMDto);
  228.  
  229.                 //ENds There
  230.  
  231.  
  232.         //        ViewKonsultasiPCM obj = _mapper.Map<ViewKonsultasiPCM>(ViewKonsultasiPCMDto);
  233.         //        AdminKonsultasi obj2 = db.AdminKonsultasi.First(u => u.KONSULTASIID == obj.konsultasiid);
  234.         //        AdminKonsultasiPCM adminKonsultPCM = db.AdminKonsultasiPCM.First(u => u.KONSULTASIID == obj.konsultasiid);
  235.  
  236.         //        //  PemohonKonsultasiPCM obj = _mapper.Map<PemohonKonsultasiPCM>(ViewKonsultasiPCMDto);
  237.         //        // db.KonsultasiPCM.Add(obj);
  238.         //        //db.SaveChanges();
  239.         //        if (obj2 == null)
  240.         //        {
  241.         //            var newAdminKonsultasi = new AdminKonsultasi
  242.         //            {
  243.         //                KONSULTASIID = ViewKonsultasiPCMDto.konsultasiid,
  244.         //                ENTITASID = ViewKonsultasiPCMDto.entitasid,
  245.         //                TIMEPCMCMID = ViewKonsultasiPCMDto.timepcmcmid,
  246.         //                TIPEKONSULTASI = 2,
  247.                        // WORKFLOWID = 718,
  248.                     //};
  249.  
  250.         //            db.AdminKonsultasi.Add(newAdminKonsultasi);
  251.         //        }
  252.         //        else
  253.         //        {
  254.         //            obj2.ENTITASID = ViewKonsultasiPCMDto.entitasid;
  255.         //            obj2.TIMEPCMCMID = ViewKonsultasiPCMDto.timepcmcmid;
  256.         //            obj2.TIMEPCMCMID = ViewKonsultasiPCMDto.timepcmcmid;
  257.         //            obj2.TIPEKONSULTASI = 2;
  258.         //            obj2.WORKFLOWID = 718;
  259.         //        }
  260.  
  261.         //        db.SaveChanges();
  262.  
  263.         //        if (adminKonsultPCM == null)
  264.         //        {
  265.         //            var newAdminKonsultasiPCM = new AdminKonsultasiPCM
  266.         //            {
  267.         //                KONSULTASIID = ViewKonsultasiPCMDto.konsultasiid,
  268.         //                TIPEPERIZINANID = ViewKonsultasiPCMDto.tipeperizinanid,
  269.         //                ISBACAKETENTUAN = ViewKonsultasiPCMDto.isbacaketentuan,
  270.         //                ISIZINSEBELUMNYA = ViewKonsultasiPCMDto.isizinsebelumnya,
  271.         //                ISPCMSEBELUMNYA = ViewKonsultasiPCMDto.ispcmsebelumnya,
  272.         //                TOPICID = ViewKonsultasiPCMDto.topikid,
  273.         //                INFORMASITAMBAHAN = ViewKonsultasiPCMDto.informasitambahan,
  274.         //                METODE = ViewKonsultasiPCMDto.metode,
  275.         //                LOKASI = ViewKonsultasiPCMDto.lokasi,
  276.         //                JAWABANKUIS = ViewKonsultasiPCMDto.jawabankuis,
  277.         //                KATEGORIPJPID = ViewKonsultasiPCMDto.kategoripjpid,
  278.         //                AKTIVITASPERIZINANID = ViewKonsultasiPCMDto.aktivitasperizinanid,
  279.         //                HASIL = ViewKonsultasiPCMDto.hasil,
  280.         //                FOLLOWUP = ViewKonsultasiPCMDto.followup,
  281.         //            };
  282.  
  283.         //            db.AdminKonsultasiPCM.Add(newAdminKonsultasiPCM);
  284.         //        }
  285.         //        else
  286.         //        {
  287.         //            //adminKonsultPCM.KONSULTASIID = ViewKonsultasiPCMDto.konsultasiid;
  288.         //            //adminKonsultPCM.TIPEPERIZINANID = ViewKonsultasiPCMDto.tipeperizinanid;
  289.         //            //adminKonsultPCM.ISBACAKETENTUAN = ViewKonsultasiPCMDto.isbacaketentuan;
  290.         //            //adminKonsultPCM.ISIZINSEBELUMNYA = ViewKonsultasiPCMDto.isizinsebelumnya;
  291.         //            //adminKonsultPCM.ISPCMSEBELUMNYA = ViewKonsultasiPCMDto.ispcmsebelumnya;
  292.         //            //adminKonsultPCM.TOPICID = ViewKonsultasiPCMDto.topikid;
  293.         //            //adminKonsultPCM.INFORMASITAMBAHAN = ViewKonsultasiPCMDto.informasitambahan;
  294.         //            //adminKonsultPCM.METODE = ViewKonsultasiPCMDto.metode;
  295.         //            //adminKonsultPCM.LOKASI = ViewKonsultasiPCMDto.lokasi;
  296.         //            //adminKonsultPCM.JAWABANKUIS = ViewKonsultasiPCMDto.jawabankuis;
  297.         //            adminKonsultPCM.KATEGORIPJPID = ViewKonsultasiPCMDto.kategoripjpid;
  298.         //            adminKonsultPCM.AKTIVITASPERIZINANID = ViewKonsultasiPCMDto.aktivitasperizinanid;
  299.         //            adminKonsultPCM.HASIL = ViewKonsultasiPCMDto.hasil;
  300.         //            adminKonsultPCM.FOLLOWUP = ViewKonsultasiPCMDto.followup;
  301.         //        }
  302.  
  303.         //        db.SaveChanges();
  304.         //        response.data = _mapper.Map<ViewKonsultasiPCM>(obj);
  305.             }
  306.             catch (Exception ex)
  307.             {
  308.                 response.status = false;
  309.                 response.message = ex.Message;
  310.  
  311.                 return BadRequest(response);
  312.             }
  313.  
  314.             return Ok(response);
  315.         }
  316.        
  317.         [HttpPost]
  318.         [Route("reschedule")]
  319.         public IActionResult reschedule([FromBody] ViewKonsultasiPCMDto ViewKonsultasiPCMDto)
  320.         {
  321.             try
  322.             {
  323.                 ViewKonsultasiPCM obj = _mapper.Map<ViewKonsultasiPCM>(ViewKonsultasiPCMDto);
  324.                 //  PemohonKonsultasiPCM obj = _mapper.Map<PemohonKonsultasiPCM>(ViewKonsultasiPCMDto);
  325.                 // db.KonsultasiPCM.Add(obj);
  326.                 //db.SaveChanges();
  327.                 int konsid;
  328.                 var newAdminKonsultasi = new AdminKonsultasiClone
  329.                 {
  330.                     ENTITASID = ViewKonsultasiPCMDto.entitasid,
  331.                     TIMEPCMCMID = ViewKonsultasiPCMDto.timepcmcmid,
  332.                     TIPEKONSULTASI = 2,
  333.                     WORKFLOWID = 715,
  334.  
  335.                 };
  336.  
  337.  
  338.                 //  db.Holiday.Add(newKalender);
  339.                 //PemohonKonsultasi obj2 = _mapper.Map<PemohonKonsultasi>(provinsiDto);
  340.                 db.AdminKonsultasiClone.Add(newAdminKonsultasi);
  341.                 db.SaveChanges();
  342.                 konsid = newAdminKonsultasi.KONSULTASIID;
  343.  
  344.                 var newAdminKonsultasiPCM = new AdminKonsultasiPCM
  345.                 {
  346.                     KONSULTASIID = konsid,
  347.                     TIPEPERIZINANID = ViewKonsultasiPCMDto.tipeperizinanid,
  348.                     ISBACAKETENTUAN = ViewKonsultasiPCMDto.isbacaketentuan,
  349.                     ISIZINSEBELUMNYA = ViewKonsultasiPCMDto.isizinsebelumnya,
  350.                     ISPCMSEBELUMNYA = ViewKonsultasiPCMDto.ispcmsebelumnya,
  351.                     TOPICID = ViewKonsultasiPCMDto.topikid,
  352.                     INFORMASITAMBAHAN = ViewKonsultasiPCMDto.informasitambahan,
  353.                     METODE = ViewKonsultasiPCMDto.metode,
  354.                     LOKASI = ViewKonsultasiPCMDto.lokasi,
  355.                     JAWABANKUIS = ViewKonsultasiPCMDto.jawabankuis
  356.                 };
  357.  
  358.                 db.AdminKonsultasiPCM.Add(newAdminKonsultasiPCM);
  359.                 db.SaveChanges();
  360.                 response.data = _mapper.Map<ViewKonsultasiPCM>(obj);
  361.             }
  362.             catch (Exception ex)
  363.             {
  364.                 response.status = false;
  365.                 response.message = ex.Message;
  366.  
  367.                 return BadRequest(response);
  368.             }
  369.  
  370.             return Ok(response);
  371.         }
  372.  
  373.         [HttpPost]
  374.         [Route("update")]
  375.         public IActionResult update([FromBody] PemohonKonsultasiPCMDto provinsiDto)
  376.         {
  377.             try
  378.             {
  379.                 PemohonKonsultasiPCM obj = _mapper.Map<PemohonKonsultasiPCM>(provinsiDto);
  380.                 db.KonsultasiPCM.Update(obj);
  381.                 db.SaveChanges();
  382.  
  383.                 response.data = _mapper.Map<PemohonKonsultasiPCMDto>(obj);
  384.             }
  385.             catch (Exception ex)
  386.             {
  387.                 response.status = false;
  388.                 response.message = ex.Message;
  389.  
  390.                 return BadRequest(response);
  391.             }
  392.  
  393.             return Ok(response);
  394.         }
  395.  
  396.         [HttpPost]
  397.         [Route("delete/{id:int}")]
  398.         public IActionResult delete(int id)
  399.         {
  400.             try
  401.             {
  402.                 PemohonKonsultasiPCM obj = db.KonsultasiPCM.First(u => u.konsultasipcmid  == id);
  403.                 db.KonsultasiPCM.Remove(obj);
  404.                 db.SaveChanges();
  405.             }
  406.             catch (Exception ex)
  407.             {
  408.                 response.status = false;
  409.                 response.message = ex.Message;
  410.  
  411.                 return BadRequest(response);
  412.  
  413.             }
  414.  
  415.             return Ok(response);
  416.         }
  417.     }
  418. }
  419.  
Advertisement
Add Comment
Please, Sign In to add comment