public IHttpActionResult EditFormData(int id, [FromBody] CompanyModels.Update company)
        {
            JavaScriptSerializer js = new JavaScriptSerializer();
            string logForm          = "Form : " + js.Serialize(company);
            string logAPI           = "[Put] " + Request.RequestUri.ToString();

            if (!ModelState.IsValid || company == null)
            {
                Startup._sfAppLogger.Warn(logAPI + " || Input Parameter not expected || " + logForm);
                return(BadRequest("Invalid data"));
            }

            try
            {
                CompanyModels companyModel = new CompanyModels();
                companyModel.updateCompany(id, company);
                RedisCacheHelper.DeleteCompanyCache(id);
                return(Ok("Success"));
            }
            catch (Exception ex)
            {
                StringBuilder logMessage = LogUtility.BuildExceptionMessage(ex);
                logMessage.AppendLine(logForm);
                Startup._sfAppLogger.Error(logAPI + logMessage);

                return(InternalServerError(ex));
            }
        }
        public async Task <HttpResponseMessage> UploadLogoFile(int id)
        {
            // Check if the request contains multipart/form-data.
            if (!Request.Content.IsMimeMultipartContent())
            {
                return(Request.CreateResponse(HttpStatusCode.UnsupportedMediaType));
            }

            CompanyModels companyModel = new CompanyModels();
            FileUtility   fileHelper   = new FileUtility();
            string        root         = Path.GetTempPath();
            var           provider     = new MultipartFormDataStreamProvider(root);

            try
            {
                CompanyModels.Detail company = companyModel.getCompanyById(id);
            }
            catch
            {
                return(Request.CreateResponse(HttpStatusCode.NotFound));
            }

            try
            {
                // Read the form data.
                string fileAbsoluteUri = "";
                await Request.Content.ReadAsMultipartAsync(provider);

                //FileData
                foreach (MultipartFileData fileData in provider.FileData)
                {
                    string formColumnName   = fileData.Headers.ContentDisposition.Name;
                    string fileExtenionName = fileData.Headers.ContentDisposition.FileName.Split('.')[1];
                    if (fileHelper.CheckImageExtensionName(formColumnName, fileExtenionName))
                    {
                        string uploadFilePath = "company-" + id + "/" + id + "-default." + fileHelper.LowerAndFilterString(fileExtenionName);
                        fileAbsoluteUri = fileHelper.SaveFiletoStorage(fileData.LocalFileName, uploadFilePath, "images");
                    }
                }

                if (fileAbsoluteUri.Equals(""))
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "File is empty or wrong extension name"));
                }

                //Edit company logo path
                companyModel.updateCompanyLogoURL(id, fileAbsoluteUri);
                RedisCacheHelper.DeleteCompanyCache(id);
                return(Request.CreateResponse(HttpStatusCode.OK, new { imageURL = fileAbsoluteUri }));
            }
            catch (System.Exception e)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e));
            }
        }
 public IHttpActionResult Delete(int id)
 {
     try
     {
         CompanyModels companyModel = new CompanyModels();
         companyModel.deleteCompany(id);
         RedisCacheHelper.DeleteCompanyCache(id);
         return(Ok("Success"));
     }
     catch (Exception ex)
     {
         string        logAPI     = "[Delete] " + Request.RequestUri.ToString();
         StringBuilder logMessage = LogUtility.BuildExceptionMessage(ex);
         Startup._sfAppLogger.Error(logAPI + logMessage);
         return(InternalServerError());
     }
 }