public Entity.BaseResponse <Entity.GreenHouse> Manage([FromForm] Entity.GreenHouseModel request) { Entity.BaseResponse <Entity.GreenHouse> response = new Entity.BaseResponse <Entity.GreenHouse>(true); try { var status = _service.Manage(request); response.IsSuccess = status.Success; response.Message = status.Message; response.Data = status.Data; } catch (Exception ex) { base.LogException(ex); return(new Entity.BaseResponse <Entity.GreenHouse>(false, ex.Message)); } return(response); }
public Entity.ActionStatus Manage(Entity.GreenHouseModel request) { Entity.ActionStatus actionStatus = new Entity.ActionStatus(true); try { if (request.Guid == null || request.Guid == Guid.Empty) { Entity.GreenHouse ghEntity = Mapper.Configuration.Mapper.Map <Entity.GreenHouseModel, Entity.GreenHouse>(request); var addEntityResult = AsyncHelpers.RunSync <IOT.DataResponse <IOT.AddEntityResult> >(() => _iotConnectClient.GreenHouse.Add(Mapper.Configuration.Mapper.Map <IOT.AddEntityModel>(ghEntity))); if (addEntityResult != null && addEntityResult.status && addEntityResult.data != null) { request.Guid = Guid.Parse(addEntityResult.data.EntityGuid.ToUpper()); var dbGreenHouse = Mapper.Configuration.Mapper.Map <Entity.GreenHouse, Model.GreenHouse>(ghEntity); if (request.ImageFile != null) { // upload image dbGreenHouse.Image = SaveGreenHouseImage(request.Guid, request.ImageFile); } dbGreenHouse.Guid = request.Guid; dbGreenHouse.CompanyGuid = SolutionConfiguration.CompanyId; dbGreenHouse.CreatedDate = DateTime.Now; dbGreenHouse.CreatedBy = SolutionConfiguration.CurrentUserId; actionStatus = _greenHouseRepository.Manage(dbGreenHouse); actionStatus.Data = Mapper.Configuration.Mapper.Map <Model.GreenHouse, Entity.GreenHouse>(actionStatus.Data); if (!actionStatus.Success) { _logger.ErrorLog(new Exception($"GreenHouse is not added in solution database, Error: {actionStatus.Message}"), this.GetType().Name, MethodBase.GetCurrentMethod().Name); var deleteEntityResult = _iotConnectClient.GreenHouse.Delete(request.Guid.ToString()).Result; if (deleteEntityResult != null && deleteEntityResult.status) { _logger.ErrorLog(new Exception($"GreenHouse is not deleted from iotconnect, Error: {deleteEntityResult.message}"), this.GetType().Name, MethodBase.GetCurrentMethod().Name); actionStatus.Success = false; actionStatus.Message = "Something Went Wrong!"; } } } else { _logger.ErrorLog(new Exception($"GreenHouse is not added in iotconnect, Error: {addEntityResult.message}"), this.GetType().Name, MethodBase.GetCurrentMethod().Name); actionStatus.Success = false; actionStatus.Message = new UtilityHelper().IOTResultMessage(addEntityResult.errorMessages); } } else { Entity.GreenHouse ghEntity = Mapper.Configuration.Mapper.Map <Entity.GreenHouseModel, Entity.GreenHouse>(request); var olddbGreenHouse = _greenHouseRepository.FindBy(x => x.Guid.Equals(request.Guid)).FirstOrDefault(); if (olddbGreenHouse == null) { throw new NotFoundCustomException($"{CommonException.Name.NoRecordsFound} : GreenHouse"); } var updateEntityResult = _iotConnectClient.GreenHouse.Update(request.Guid.ToString(), Mapper.Configuration.Mapper.Map <IOT.UpdateEntityModel>(ghEntity)).Result; if (updateEntityResult != null && updateEntityResult.status && updateEntityResult.data != null) { var existingImage = olddbGreenHouse.Image; var dbGreenHouse = Mapper.Configuration.Mapper.Map(request, olddbGreenHouse); if (request.ImageFile != null) { if (File.Exists(SolutionConfiguration.UploadBasePath + dbGreenHouse.Image) && request.ImageFile.Length > 0) { //if already exists image then delete old image from server File.Delete(SolutionConfiguration.UploadBasePath + dbGreenHouse.Image); } if (request.ImageFile.Length > 0) { // upload new image dbGreenHouse.Image = SaveGreenHouseImage(dbGreenHouse.Guid, request.ImageFile); } } else { dbGreenHouse.Image = existingImage; } dbGreenHouse.UpdatedDate = DateTime.Now; dbGreenHouse.UpdatedBy = SolutionConfiguration.CurrentUserId; dbGreenHouse.CompanyGuid = SolutionConfiguration.CompanyId; actionStatus = _greenHouseRepository.Manage(dbGreenHouse); actionStatus.Data = Mapper.Configuration.Mapper.Map <Model.GreenHouse, Entity.GreenHouse>(dbGreenHouse); if (!actionStatus.Success) { _logger.ErrorLog(new Exception($"GreenHouse is not updated in solution database, Error: {actionStatus.Message}"), this.GetType().Name, MethodBase.GetCurrentMethod().Name); actionStatus.Success = false; actionStatus.Message = "Something Went Wrong!"; } } else { _logger.ErrorLog(new Exception($"GreenHouse is not updated in iotconnect, Error: {updateEntityResult.message}"), this.GetType().Name, MethodBase.GetCurrentMethod().Name); actionStatus.Success = false; actionStatus.Message = new UtilityHelper().IOTResultMessage(updateEntityResult.errorMessages); } } } catch (Exception ex) { _logger.ErrorLog(ex, this.GetType().Name, MethodBase.GetCurrentMethod().Name); actionStatus.Success = false; actionStatus.Message = ex.Message; } return(actionStatus); }