public async Task <JsonResult> AddNewAddressFor(AddressBinderVM binder)
        {
            _logger.LogInformation("AddressController.GetAddressListFor - hidrogenianId=" + binder.HidrogenianId);

            IGenericAddressVM address;

            if (binder.LocalAddress == null)
            {
                address = binder.StandardAddress;
            }
            else
            {
                address = binder.LocalAddress;
            }

            var verification = VerifyAddress(address);

            verification.AddRange(address.VerifyTitle());
            if (verification.Count != 0)
            {
                var messages = binder.LocalAddress == null?address.sAddress.GenerateErrorMessages(verification)
                                   : address.lAddress.GenerateErrorMessages(verification);

                return(new JsonResult(new { Result = RESULTS.FAILED, Message = messages }));
            }

            var rawAddress = await _addressService.InsertRawAddressFor(binder.HidrogenianId, address);

            return(rawAddress == null ? new JsonResult(new { Result = RESULTS.FAILED, Message = "An error occurred while saving your address. Please try again." })
                                      : new JsonResult(new { Result = RESULTS.SUCCESS, Message = rawAddress }));
        }
        public async Task <JsonResult> UpdateHidrogenianAddress(AddressBinderVM binder)
        {
            IGenericAddressVM address;

            if (binder.LocalAddress == null)
            {
                address = binder.StandardAddress;
            }
            else
            {
                address = binder.LocalAddress;
            }

            _logger.LogInformation("AddressController.UpdateHidrogenianAddress - addressId=" + address.Id);

            var verification = VerifyAddress(address);

            verification.AddRange(address.VerifyTitle());
            if (verification.Count != 0)
            {
                var messages = binder.LocalAddress == null?address.sAddress.GenerateErrorMessages(verification)
                                   : address.lAddress.GenerateErrorMessages(verification);

                return(new JsonResult(new { Result = RESULTS.FAILED, Message = messages }));
            }

            var updateResult = await _addressService.UpdateHidroAddress(address);

            if (!updateResult.Key.HasValue)
            {
                return(new JsonResult(new { Result = RESULTS.FAILED, Message = "No address found with the given data. Please try again." }));
            }

            if (!updateResult.Key.Value)
            {
                return(new JsonResult(new { Result = RESULTS.FAILED, Message = "Error occurred while attempting to update the address details. Please try again." }));
            }

            if (updateResult.Value == null)
            {
                return(new JsonResult(new { Result = RESULTS.FAILED, Message = "Error occurred while saving your new address details. Please try again." }));
            }

            return(new JsonResult(new { Result = RESULTS.SUCCESS, Message = updateResult.Value }));
        }