Example #1
0
        private ContractViewModel UpdateContract(Guid id, ContractViewModel contractViewModel)
        {
            using (var scope = new TransactionScope(TransactionScopeOption.Required,
                                                    new TransactionOptions {
                IsolationLevel = IsolationLevel.ReadCommitted
            }))
            {
                var contractToUpdate = _db.SignedContracts.Where(sc => sc.SignedContractId == id).FirstOrDefault();

                contractToUpdate.ContractIndividualIsActive = contractViewModel.IsActive;

                var beneficiariesToDelete = _db
                                            .Contract_Beneficiary
                                            .Where(cb => cb.SignedContractId == contractToUpdate.SignedContractId)
                                            .ToList();

                _db.RemoveRange(beneficiariesToDelete);

                if (UpdateBeneficiaries(contractViewModel, contractToUpdate.SignedContractId))
                {
                    _db.SaveChanges();
                    return(contractViewModel);
                }

                scope.Complete();
                return(null);
            }
        }
Example #2
0
        private async Task RefreshDataBase()
        {
            var plots = await HarvesterClient.GetPlotsAsync();

            var plotInfos = await DbContext.Plots.ToListAsync();

            foreach (var plot in plots)
            {
                var plotInfo = plotInfos.FirstOrDefault(x => x.PublicKey == plot.PublicKey);

                if (plotInfo == null)
                {
                    plotInfo = new PlotInfo(plot.PublicKey, plot.FileName);
                    DbContext.Plots.Add(plotInfo);
                }
                else
                {
                    plotInfo.FileName = plot.FileName;
                    plotInfos.Remove(plotInfo);
                }
            }

            DbContext.RemoveRange(plotInfos);
            await DbContext.SaveChangesAsync();
        }
        /// <summary>
        /// Update/Delete de Contract Holder
        /// </summary>
        /// <param name="id"></param>
        /// <param name="vm"></param>
        /// <returns></returns>
        public ContractHolderViewModel Update(Guid id, ContractHolderViewModel vm)
        {
            using (var scope = new TransactionScope(TransactionScopeOption.Required,
                                                    new TransactionOptions {
                IsolationLevel = IsolationLevel.ReadCommitted
            }))
            {
                var individual = _db.Individuals.Where(ind => ind.BeneficiaryId == id).FirstOrDefault();

                if (individual == null)
                {
                    return(null);
                }

                var beneficary_addresses  = _db.Beneficiary_Address.Where(benAd => benAd.BeneficiaryId == individual.BeneficiaryId).ToList();
                var individual_telephones = _db.Individual_Telephone.Where(indTel => indTel.BeneficiaryId == individual.BeneficiaryId).ToList();

                //Soft Delete
                if (vm.isDeleted)
                {
                    if (_db.SignedContracts.Where(sigCon => (sigCon.ContractIndividualIsActive == true) && (sigCon.IndividualId == id)).Any())
                    {
                        return(null);
                    }

                    individual.IsDeleted = vm.isDeleted;
                    _db.Update(individual);
                }

                //Update
                else
                {
                    if (Factories.IndividualFactory.Create(vm) == null ||
                        Factories.AddressFactory.CreateList(vm.individualAddresses).Count() != vm.individualAddresses.Count() ||
                        Factories.TelephoneFactory.CreateList(vm.individualTelephones).Count() != vm.individualTelephones.Count())
                    {
                        return(null);
                    }

                    else if (individual.IndividualCPF != vm.individualCPF)
                    {
                        return(null);
                    }

                    individual.IndividualBirthdate = vm.individualBirthdate;
                    individual.IndividualCPF       = vm.individualCPF;
                    individual.IndividualEmail     = vm.individualEmail;
                    individual.IndividualName      = vm.individualName;
                    individual.IndividualRG        = vm.individualRG;

                    _db.Update(individual);

                    if (beneficary_addresses.Count() > 0)
                    {
                        _db.RemoveRange(beneficary_addresses);
                    }
                    if (individual_telephones.Count() > 0)
                    {
                        _db.RemoveRange(individual_telephones);
                    }

                    _db.AddRange(vm.individualAddresses);
                    _db.AddRange(vm.individualTelephones);

                    foreach (var benAdd in vm.individualAddresses)
                    {
                        _db.Add(new BeneficiaryAddress
                        {
                            BeneficiaryAddressId = Guid.NewGuid(),
                            BeneficiaryId        = individual.BeneficiaryId,
                            AddressId            = benAdd.AddressId
                        });
                    }

                    foreach (var indTel in vm.individualTelephones)
                    {
                        _db.Add(new BeneficiaryTelephone
                        {
                            BeneficiaryTelephoneId = Guid.NewGuid(),
                            BeneficiaryId          = individual.BeneficiaryId,
                            TelephoneId            = indTel.TelephoneId
                        });
                    }
                }

                _db.SaveChanges();

                scope.Complete();

                return(vm);
            }
        }