Пример #1
0
        public async Task<IHttpActionResult> PostService()
        {
            try
            {

                if (!ModelState.IsValid)
                {
                    return BadRequest(ModelState);
                }
                SubServiceBindingModel modal = new SubServiceBindingModel();
                var root = HttpContext.Current.Server.MapPath(Utility.Constants.BASE_FILE_UPLOAD_PATH);
                Directory.CreateDirectory(root);
                var provider = new MultipartFormDataStreamProvider(root);
                var resultModel = await Request.Content.ReadAsMultipartAsync(provider);
                if (resultModel.FormData["model"] == null)
                {
                    throw new HttpResponseException(HttpStatusCode.BadRequest);
                }
                else
                {
                    modal = JsonConvert.DeserializeObject<SubServiceBindingModel>(resultModel.FormData["model"]);
                    modal.CreatedDate = DateTime.Now;
                    modal.ServiceCategoryId = modal.ServiceCategoryId > 0 ? modal.ServiceCategoryId : null;
                    //modal.Description = resultModel.FormData["Description"];
                }
                if (resultModel.FileData.Count > 0)
                {
                    string fileName;

                    if (HttpContext.Current.Request.Files != null)
                    {
                        for (var i = 0; i < resultModel.FileData.Count; i++)
                        {
                            var file = HttpContext.Current.Request.Files[i];
                            fileName = file.FileName;


                            if (i == 0)
                            {

                                file.SaveAs(Path.Combine(root, Utility.Constants.SERVICES_LOGO, fileName));
                                modal.ServicePicturePath = fileName;
                            }
                        }
                    }
                }

                SubServiceModel serviceModel = new SubServiceModel();
                AutoMapper.Mapper.Map(modal, serviceModel);
                bool isParentActualService = true;
                var parentServiceOfServiceToInsert = subServicesService.GetSubServiceById(modal.ParentServiceId);
                var parentServiceOfServiceToInsertChildren = subServicesService.GetAllSubServicesByServiceId(parentServiceOfServiceToInsert.ServiceId).ToList();

                isParentActualService = parentServiceOfServiceToInsertChildren.Count() > 0 ? false : true;

                if (isParentActualService)
                {
                    serviceModel.ServiceCategoryId = null;
                }

                serviceModel = subServicesService.SaveSubService(serviceModel);
                return Ok(serviceModel);
            }
            catch (Exception ex)
            {
                Elmah.ErrorSignal.FromCurrentContext().Raise(ex);
                return BadRequest(ex.Message);
            }
        }
Пример #2
0
        public async Task<IHttpActionResult> PutService(int id)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return BadRequest(ModelState);
                }
                SubServiceBindingModel modal = new SubServiceBindingModel();
                var root = HttpContext.Current.Server.MapPath(Utility.Constants.BASE_FILE_UPLOAD_PATH);
                Directory.CreateDirectory(root);
                var provider = new MultipartFormDataStreamProvider(root);
                var resultModel = await Request.Content.ReadAsMultipartAsync(provider);
                if (resultModel.FormData["model"] == null)
                {
                    throw new HttpResponseException(HttpStatusCode.BadRequest);
                }
                else
                {
                    modal = JsonConvert.DeserializeObject<SubServiceBindingModel>(resultModel.FormData["model"]);
                    modal.CreatedDate = DateTime.Now;
                    //modal.Description = resultModel.FormData["Description"];
                }
                if (resultModel.FileData.Count > 0)
                {
                    string fileName;

                    if (HttpContext.Current.Request.Files != null)
                    {
                        for (var i = 0; i < resultModel.FileData.Count; i++)
                        {
                            var file = HttpContext.Current.Request.Files[i];
                            fileName = file.FileName;


                            if (i == 0)
                            {

                                file.SaveAs(Path.Combine(root, Utility.Constants.SERVICES_LOGO, fileName));
                                modal.ServicePicturePath = fileName;
                            }
                        }
                    }
                }

                SubServiceModel serviceModel = new SubServiceModel();
                SubServiceModel checkserviceModel = new SubServiceModel();
                if (modal.ServiceCategoryId == 0)
                {
                    modal.ServiceCategoryId = null;
                }
                AutoMapper.Mapper.Map(modal, serviceModel);
                serviceModel = subServicesService.UpadteSubService(serviceModel);
                //checkserviceModel = subServicesService.GetSubServiceById(id);
                //if(checkserviceModel.ParentServiceId == modal.ParentServiceId)
                //{

                //}
                //else
                //{
                //    subServicesService.DeleteSubService(checkserviceModel.ServiceId);
                //    serviceModel = subServicesService.GetSubServiceById(serviceModel.ServiceId);
                //    modal.ServiceId = 0;
                //    AutoMapper.Mapper.Map(modal, serviceModel);
                //    serviceModel = subServicesService.SaveSubService(serviceModel);
                //}




                return Ok(serviceModel);

            }
            catch (Exception ex)
            {
                Elmah.ErrorSignal.FromCurrentContext().Raise(ex);
                return BadRequest(ex.Message);
            }
        }