public async Task <ProvinceResponse> SaveAsync(Province province)
        {
            try
            {
                await _provinceRepository.AddAsync(province);

                await _unitOfWork.CompleteAsync();

                return(new ProvinceResponse(province));
            }
            catch (Exception ex)
            {
                return(new ProvinceResponse($"An error ocurred while saving province: {ex.Message}"));
            }
        }
        public override async Task <int> HandleCommand(InsertProvinceCommand request, CancellationToken cancellationToken)
        {
            var id = 0;

            using (var conn = DALHelper.GetConnection())
            {
                conn.Open();
                using (var trans = conn.BeginTransaction())
                {
                    try
                    {
                        request.Model.CreatedDate  = DateTime.Now;
                        request.Model.CreatedBy    = request.LoginSession.Id;
                        request.Model.ModifiedDate = DateTime.Now;
                        request.Model.ModifiedBy   = request.LoginSession.Id;

                        id = await provinceRepository.AddAsync(request.Model);
                    }
                    catch (Exception ex)
                    {
                        throw ex;
                    }
                    finally
                    {
                        if (id > 0)
                        {
                            trans.Commit();
                        }
                        else
                        {
                            try { trans.Rollback(); } catch { }
                        }
                    }
                }
            }

            return(id);
        }