public async Task <IActionResult> DeleteAddress(int id)
        {
            Result result = new Result();

            try
            {
                _log.Info(LogMessageHelper.FormateMessageForStart("DeleteAddress[POST]"));

                if (id > 0)
                {
                    result = await _iAddressManager.DeleteAddressEntityAsync(id);
                }
                else
                {
                    result = Result.Fail(MessageHelper.DeleteFail);
                }

                if (result.Success)
                {
                    return(Ok(result));
                }
                else
                {
                    return(BadRequest(result));
                }
            }
            catch (Exception ex)
            {
                _log.Error(LogMessageHelper.FormateMessageForException(ex, "DeleteAddress[POST]"));
                result = Result.Fail(MessageHelper.UnhandelledError);
                return(BadRequest(result));
            }

            return(BadRequest(MessageHelper.NullReferenceExceptionError));
        }
        public async Task <IActionResult> GetAddress(int id)
        {
            try
            {
                _log.Info(LogMessageHelper.FormateMessageForStart("GetAddress[GET]"));

                var response = await _iAddressManager.GetAddressEntityAsync(id);

                return(Ok(response));
            }
            catch (Exception ex)
            {
                _log.Error(LogMessageHelper.FormateMessageForException(ex, "GetAddress[GET]"));
            }

            return(BadRequest(MessageHelper.NullReferenceExceptionError));
        }
        public async Task <IActionResult> SaveAddress(AddressEntityViewModel viewModel)
        {
            Result result = new Result();

            try
            {
                _log.Info(LogMessageHelper.FormateMessageForStart("AddAddress[POST]"));

                if (ModelState.IsValid)
                {
                    //add
                    if (viewModel.AddressId == 0)
                    {
                        result = await _iAddressManager.InsertAddressEntityAsync(viewModel);
                    }
                    else if (viewModel.AddressId > 0) //edit
                    {
                        result = await _iAddressManager.UpdateAddressEntityAsync(viewModel);
                    }

                    if (result.Success)
                    {
                        return(Ok(result));
                    }
                    else
                    {
                        return(BadRequest(result));
                    }
                }
                else
                {
                    var modelStateError = ExceptionHelper.ModelStateErrorFirstFormat(ModelState);
                    result = Result.Fail(modelStateError);
                    return(BadRequest(result));
                }
            }
            catch (Exception ex)
            {
                _log.Error(LogMessageHelper.FormateMessageForException(ex, "AddAddress[POST]"));
            }

            return(BadRequest(MessageHelper.NullReferenceExceptionError));
        }