Ejemplo n.º 1
0
 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);
        }