public async Task <IRespostaDeCadastroDeUnidade> CadastraUnidade(ISolicitacaoDeCadastroDeUnidade solicitacao)
        {
            await unitOfWork.BeginTransaction();

            try
            {
                var unidade = new UnidadeDeMedida(
                    solicitacao.Sigla,
                    solicitacao.NomeNoSingular,
                    solicitacao.NomeNoPlural
                    );

                //

                await repositorioDeUnidades.Add(unidade);

                //

                await unitOfWork.Commit();

                //

                return(new RespostaDeCadastroDeUnidadeDeMedida
                {
                    Sigla = solicitacao.Sigla,
                });
            }
            catch (Exception e)
            {
                await unitOfWork.Rollback();

                throw;
            }
        }
        public async Task <IRespostaDeCadastroDeUnidade> CadastraUnidade(ISolicitacaoDeCadastroDeUnidade solicitacao)
        {
            HttpResponseMessage response = await client.PostAsJsonAsync("cadastro/medidas/unidadesDeMedidas/", solicitacao);

            //response.EnsureSuccessStatusCode();

            //return response.Headers.Location;

            IRespostaDeCadastroDeUnidade resposta = null;

            if (response.IsSuccessStatusCode)
            {
                resposta = await response.Content.ReadAsAsync <IRespostaDeCadastroDeUnidade>();
            }

            return(resposta);
        }
        public async Task <IRespostaDeCadastroDeUnidade> AtualizaUnidade(string sigla, ISolicitacaoDeCadastroDeUnidade solicitacao)
        {
            await unitOfWork.BeginTransaction();

            try
            {
                var unidade = await repositorioDeUnidades.ObtemUnidadeDeMedida(sigla);

                //

                unidade.Sigla = solicitacao.Sigla;

                unidade.NomeNoSingular = solicitacao.NomeNoSingular;

                unidade.NomeNoPlural = solicitacao.NomeNoPlural;

                //

                await repositorioDeUnidades.Update(unidade);

                //

                await unitOfWork.Commit();

                //

                return(new RespostaDeCadastroDeUnidadeDeMedida
                {
                    Sigla = solicitacao.Sigla,
                });
            }
            catch (Exception e)
            {
                await unitOfWork.Rollback();

                throw;
            }
        }