Ejemplo n.º 1
0
        public async Task <BranchModel> AddBranch(BranchModel branchModel)
        {
            List <BranchAddress> branchAddresses = new List <BranchAddress>();

            foreach (OtherBranchAddressModel addressModel in branchModel.AddressesList ?? new List <OtherBranchAddressModel>())
            {
                branchAddresses.Add(new BranchAddress(addressModel.BranchAddressTypeId, addressModel.Position, addressModel.Address, addressModel.Phone, addressModel.Fax, addressModel.Phone2, addressModel.Fax2, addressModel.Email, addressModel.Description, addressModel.AddressName, addressModel.CityCode, addressModel.PostalCode, addressModel.ZipCode, true));
            }
            var mainAddressModel = branchModel.MainBranchAddress;

            branchAddresses.Add(new BranchAddress((int)Enums.BranchAddressType.MainBranchAddress, mainAddressModel.Position, mainAddressModel.Address, mainAddressModel.Phone, mainAddressModel.Fax, mainAddressModel.Phone2, mainAddressModel.Fax2, mainAddressModel.Email, mainAddressModel.Description, mainAddressModel.AddressName, mainAddressModel.CityCode, mainAddressModel.PostalCode, mainAddressModel.ZipCode, true));

            Branch branch;

            branchModel.CommittieeIds.AddRange(branchModel.techcommitteeIds);
            branchModel.CommittieeIds.AddRange(branchModel.checkcommitteeIds);
            branchModel.CommittieeIds.AddRange(branchModel.opencommitteeIds);
            branchModel.CommittieeIds.AddRange(branchModel.purchaseCommitteeIds);
            branchModel.CommittieeIds.AddRange(branchModel.preQualificationCommitteeIds);
            branchModel.CommittieeIds.AddRange(branchModel.vrocommitteeIds);

            if (string.IsNullOrEmpty(branchModel.BranchIdString))
            {
                await _branchServiceDomain.CheckBranchExist(branchModel.BranchName, branchModel.AgencyCode);

                branch = new Branch(branchModel.AgencyCode, branchModel.BranchName, branchAddresses);
                await _branchServiceCommand.CreateBracnhAsync(branch);

                List <BranchCommittee> BranchCommittees = new List <BranchCommittee>();
                BranchCommittee        committee;
                foreach (var id in branchModel.CommittieeIds)
                {
                    committee = new BranchCommittee(branch.BranchId, id);
                    BranchCommittees.Add(committee);
                }
                branch.AddCommittees(BranchCommittees);
                await _branchServiceCommand.UpdateAsync(branch);

                return(await FindById(branch.BranchId));
            }
            else
            {
                branch = await _branchServiceQueries.FindBranchById(Util.Decrypt(branchModel.BranchIdString));

                branch.Update(branchModel.BranchName, branchAddresses);
                List <BranchCommittee> BranchCommittees = new List <BranchCommittee>();
                BranchCommittee        committee;
                foreach (var id in branchModel.CommittieeIds)
                {
                    committee = new BranchCommittee(branch.BranchId, id);
                    BranchCommittees.Add(committee);
                }
                branch.UpdateCommittees(BranchCommittees);
                await _branchServiceCommand.UpdateAsync(branch);

                return(await FindById(branch.BranchId));
            }
        }