/// <summary> /// Delete an Ecommerce_Cliente_Endereco. /// </summary> /// <param name="id"></param> /// <returns></returns> public ActionResult Remove(int id) { //Retorna o endereço a ser deletado var addressForDelete = new EnderecoService().GetById(id); //Retorna a lista de endereços de determinado cliente var listAddress = new EnderecoService().GetRecords(x => x.IdCliente == addressForDelete.IdCliente).ToList(); //Retorna o endereço de entrega padrão var addressDefaultShipping = new EnderecoService().GetDefaultShippingAddress(addressForDelete.IdCliente); //Se houver mais que um endereço if (listAddress.Count > 1) { //Se o endereço para deletar for o mesmo que o de entrega if (addressForDelete.IdEndereco == addressDefaultShipping.IdEndereco) { //Set o primeiro endereço como endereço de entrega. var updateAddress = listAddress.FirstOrDefault(x => x.IsEnderecoEntrega == false); new EnderecoService().ChangeShippingAddress(updateAddress, true); //Delete o endereço solicitado new EnderecoService().DeleteObject(id); return Json(new JsonRequestResult { ResultType = JsonRequestResultType.Success, Message = Resources.Resource.Address_RemovedMessage }, JsonRequestBehavior.AllowGet); } new EnderecoService().DeleteObject(id); return Json(new JsonRequestResult { ResultType = JsonRequestResultType.Success, Message = Resources.Resource.Address_RemovedMessage }, JsonRequestBehavior.AllowGet); } return Json(new JsonRequestResult { ResultType = JsonRequestResultType.Alert, Message = Resources.Resource.Msg_Geral_UmEnderecoObrigatorio }, JsonRequestBehavior.AllowGet); }