public async Task <IActionResult> CreateJCC([FromBody] JobCompletionCertificateFormModel model)
        {
            var userId = GetUserId();

            if (ModelState.IsValid)
            {
                var form = new TblJobCompletionCertificate
                {
                    CertificateNumber  = model.CertificateNumber,
                    WorkOrder          = model.WorkOrder,
                    SupplierId         = model.SupplierId,
                    Address            = model.Address,
                    DeliveryAddress    = model.DeliveryAddress,
                    Telephone          = model.Telephone,
                    Email              = model.Email,
                    RecieptDate        = model.RecieptDate,
                    ServiceDescription = model.ServiceDescription,
                    CreatedDate        = DateTime.Now
                };

                await _jobCompletionCertificateRepository.CreateAsync(form);


                var endPointId = await GetEndPointId();

                var emailAddress = await _emailAddressRepository.SendEmailAddress(endPointId, 1);

                var tblStaff = await _staffRepository.FirstOrDefaultAsync(x => x.AspnetUserId == userId);

                var newAudit = new TblAuthList
                {
                    Title       = "MilestoneManagement",
                    Url         = "/api/v1/milestonemanagement/createjcc",
                    CreatedDate = DateTime.Now,
                    Status      = 0,
                    StaffId     = tblStaff.StaffId,
                    BatchId     = Guid.NewGuid().ToString()
                };

                await _auditRepository.CreateAsync(newAudit);

                await _auditRepository.SaveChangesAsync();

                return(Ok(
                           new
                {
                    message = "Job completion certificate created successfully",
                    EmailAddress = emailAddress
                }));
            }

            return(BadRequest(new
            {
                Errors = new[] { "Please input correct values" }
            }));
        }
        public async Task <IActionResult> UpdateJCC([FromBody] JobCompletionCertificateFormModel model, [FromQuery] int Jccid)
        {
            var userId = GetUserId();

            if (ModelState.IsValid)
            {
                var form = await _jobCompletionCertificateRepository.GetByIdAsync(Jccid);

                if (form == null)
                {
                    return(NotFound(new { message = "Certificate does not exist" }));
                }

                form.CertificateNumber  = model.CertificateNumber;
                form.WorkOrder          = model.WorkOrder;
                form.SupplierId         = model.SupplierId;
                form.Address            = model.Address;
                form.DeliveryAddress    = model.DeliveryAddress;
                form.Telephone          = model.Telephone;
                form.Email              = model.Email;
                form.RecieptDate        = model.RecieptDate;
                form.ServiceDescription = model.ServiceDescription;

                _jobCompletionCertificateRepository.Update(form);

                var endPointId = await GetEndPointId();

                var emailAddress = await _emailAddressRepository.SendEmailAddress(endPointId, 1);

                var tblStaff = await _staffRepository.FirstOrDefaultAsync(x => x.AspnetUserId == userId);

                var newAudit = new TblAuthList
                {
                    Title       = "MilestoneManagement",
                    Url         = "/api/v1/milestonemanagement/updatejcc",
                    CreatedDate = DateTime.Now,
                    Status      = 0,
                    StaffId     = tblStaff.StaffId,
                    BatchId     = Guid.NewGuid().ToString()
                };

                await _auditRepository.CreateAsync(newAudit);

                await _auditRepository.SaveChangesAsync();

                return(Ok(
                           new
                {
                    message = "Job completion certificate Updated successfully",
                    EmailAddress = emailAddress
                }));
            }

            return(BadRequest(model));
        }