public ContractViewModel GetElement(ContractBindingModel model)
 {
     if (model == null)
     {
         return(null);
     }
     using (var context = new TravelAgencyContext())
     {
         var contract = context.Contract
                        .FirstOrDefault(rec => rec.Contractid == model.Id);
         return(contract != null ?
                new ContractViewModel
         {
             Id = contract.Contractid,
             Clientid = contract.Clientid,
             Datetotravel = contract.Datetotravel,
             Datefromtravel = contract.Datefromtravel,
             Countnumberhotel = contract.Countnumberhotel,
             Datetohotel = contract.Datetohotel,
             Datefromhotel = contract.Datefromhotel,
             Routeid = contract.Routeid,
             Hotelid = contract.Hotelid,
             Transportid = contract.Trasportid
         } :
                null);
     }
 }
 public List <ContractViewModel> GetFilteredList(ContractBindingModel model)
 {
     if (model == null)
     {
         return(null);
     }
     using (var context = new TravelAgencyContext())
     {
         return(context.Contract
                .Where(rec => rec.Datefromtravel == model.Datefromtravel)
                .Select(rec => new ContractViewModel
         {
             Id = rec.Contractid,
             Clientid = rec.Clientid,
             Datetotravel = rec.Datetotravel,
             Datefromtravel = rec.Datefromtravel,
             Countnumberhotel = rec.Countnumberhotel,
             Datetohotel = rec.Datetohotel,
             Datefromhotel = rec.Datefromhotel,
             Routeid = rec.Routeid,
             Hotelid = rec.Hotelid,
             Transportid = rec.Trasportid
         })
                .ToList());
     }
 }
 private void buttonSave_Click(object sender, EventArgs e)
 {
     try
     {
         int     HotelDays = (dateTimePickerHotelTo.Value.Date - dateTimePickerHotelFrom.Value.Date).Days;
         decimal Price     = Convert.ToDecimal(dataGridViewTransport.SelectedRows[0].Cells[5].Value) +
                             Convert.ToDecimal(dataGridViewRooms.SelectedRows[0].Cells[4].Value) * HotelDays;
         ContractBindingModel model = new ContractBindingModel
         {
             Clientid         = Program.Client.Id,
             Hotelid          = HotelId.Value,
             Routeid          = RouteId.Value,
             Transportid      = TransportId.Value,
             Datefromhotel    = dateTimePickerHotelFrom.Value,
             Datetohotel      = dateTimePickerHotelTo.Value,
             Datefromtravel   = dateTimePickerTravelFrom.Value,
             Datetotravel     = dateTimePickerTravelTo.Value,
             Price            = Price,
             Countnumberhotel = 1
         };
         _logicC.CreateOrUpdate(model);
         MessageBox.Show("Успешно", "Сохранено",
                         MessageBoxButtons.OK, MessageBoxIcon.Information);
         Close();
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.InnerException?.Message + "\n" + ex.Message, "Ошибка",
                         MessageBoxButtons.OK, MessageBoxIcon.Error);
         return;
     }
 }
 public void Insert(ContractBindingModel model)
 {
     using (var context = new TravelAgencyContext())
     {
         context.Contract.Add(CreateModel(model, new Contract()));
         context.SaveChanges();
     }
 }
예제 #5
0
        public IActionResult GetContract()
        {
            var model = new ContractBindingModel
            {
                ContractContent = System.IO.File.ReadAllText(CONTRACT_PATH)
            };

            return(this.Ok(model));
        }
예제 #6
0
 public List <ContractViewModel> Read(ContractBindingModel model)
 {
     if (model.Id.HasValue)
     {
         return(new List <ContractViewModel> {
             _contractStorage.GetElement(model)
         });
     }
     return(_contractStorage.GetFullList());
 }
예제 #7
0
        private Contract CreateModel(ContractBindingModel model, Contract contract, ComputerRepairDatabase context)
        {
            contract.CustomerBaseid   = model.CustomerBaseId;
            contract.Employeeid       = model.EmployeeId;
            contract.Paymentid        = model.PaymentId;
            contract.DateOfConclusion = model.DateOfConclusion;
            if (contract.Id == 0)
            {
                context.Contract.Add(contract);
                context.SaveChanges();
            }
            if (model.Id.HasValue)
            {
                List <ServicesContract> servicesContract = context.ServicesContract.Where(rec => rec.Contractid == model.Id.Value).ToList();
                // удалили те, которых нет в модели
                context.ServicesContract.RemoveRange(servicesContract.Where(rec => !model.ServicesContract.Contains(rec.Servicesid)).ToList());
                context.SaveChanges();
                // обновили количество у существующих записей
                foreach (var updateServices in servicesContract)
                {
                    model.ServicesContract.Remove(updateServices.Servicesid);
                }
                List <MaterialsContract> materialsContract = context.MaterialsContract.Where(rec => rec.Contractid == model.Id.Value).ToList();
                // удалили те, которых нет в модели
                context.MaterialsContract.RemoveRange(materialsContract.Where(rec => !model.MaterialsContract.Contains(rec.Materialsid)).ToList());
                context.SaveChanges();
                // обновили количество у существующих записей
                foreach (var updateMaterials in materialsContract)
                {
                    model.MaterialsContract.Remove(updateMaterials.Materialsid);
                }
                context.SaveChanges();
            }
            // добавили новые
            foreach (var pc in model.ServicesContract)
            {
                context.ServicesContract.Add(new ServicesContract
                {
                    Contractid = contract.Id,
                    Servicesid = pc
                });
                context.SaveChanges();
            }
            foreach (var pc in model.MaterialsContract)
            {
                context.MaterialsContract.Add(new MaterialsContract
                {
                    Contractid  = contract.Id,
                    Materialsid = pc
                });
                context.SaveChanges();
            }

            return(contract);
        }
 public void CreateOrUpdate(ContractBindingModel model)
 {
     if (model.Id.HasValue)
     {
         _contractStorage.Update(model);
     }
     else
     {
         _contractStorage.Insert(model);
     }
 }
        public void Delete(ContractBindingModel model)
        {
            var element = _contractStorage.GetElement(new ContractBindingModel
            {
                Id = model.Id
            });

            if (element == null)
            {
                throw new Exception("Элемент не найден");
            }
            _contractStorage.Delete(model);
        }
 public void Update(ContractBindingModel model)
 {
     using (var context = new TravelAgencyContext())
     {
         var element = context.Contract.FirstOrDefault(rec => rec.Contractid == model.Id);
         if (element == null)
         {
             throw new Exception("Договор не найден");
         }
         CreateModel(model, element);
         context.SaveChanges();
     }
 }
예제 #11
0
        /// <summary>
        /// Create contract
        /// </summary>
        /// <param name="contextId"></param>
        /// <param name="keccak">Hashed tokens</param>
        /// <returns></returns>
        public GenericContractDeployment CreateGenericContract(Guid contextId, ContractBindingModel bindingModel)
        {
            GenericContractDeployment genericContractDeployment = new GenericContractDeployment
            {
                Parent      = "0x0000000000000000000000000000000000000000",
                ContextId   = contextId.ToString(),
                Token       = Encoding.ASCII.GetBytes("X"), // keccak,
                Version     = "1",
                ContextHash = bindingModel.ContextHash,
                EndDate     = 9,
            };

            return(genericContractDeployment);
        }
 private Contract CreateModel(ContractBindingModel model, Contract contract)
 {
     contract.Clientid         = model.Clientid;
     contract.Datetotravel     = model.Datetotravel;
     contract.Datefromtravel   = model.Datefromtravel;
     contract.Countnumberhotel = model.Countnumberhotel;
     contract.Datetohotel      = model.Datetohotel;
     contract.Datefromhotel    = model.Datefromhotel;
     contract.Routeid          = model.Routeid;
     contract.Hotelid          = model.Hotelid;
     contract.Price            = model.Price;
     contract.Trasportid       = model.Transportid;
     return(contract);
 }
 public void Delete(ContractBindingModel model)
 {
     using (var context = new TravelAgencyContext())
     {
         Contract element = context.Contract.FirstOrDefault(rec => rec.Contractid == model.Id);
         if (element != null)
         {
             context.Contract.Remove(element);
             context.SaveChanges();
         }
         else
         {
             throw new Exception("Договор не найден");
         }
     }
 }
예제 #14
0
 public void Delete(ContractBindingModel model)
 {
     using (var context = new ComputerRepairDatabase())
     {
         var contract = context.Contract.FirstOrDefault(rec => rec.Id == model.Id);
         if (contract != null)
         {
             context.Contract.Remove(contract);
             context.SaveChanges();
         }
         else
         {
             throw new Exception("Заказ не найден");
         }
     }
 }
예제 #15
0
 public void Insert(ContractBindingModel model)
 {
     using (var context = new ComputerRepairDatabase())
     {
         using (var transaction = context.Database.BeginTransaction())
         {
             try
             {
                 CreateModel(model, new Contract(), context);
                 transaction.Commit();
             }
             catch
             {
                 transaction.Rollback();
                 throw;
             }
         }
     }
 }
예제 #16
0
 public ContractViewModel GetElement(ContractBindingModel model)
 {
     if (model == null)
     {
         return(null);
     }
     using (var context = new ComputerRepairDatabase())
     {
         var contract = context.Contract
                        .Include(rec => rec.Employee)
                        .Include(rec => rec.ServicesContracts)
                        .ThenInclude(rec => rec.Services)
                        .Include(rec => rec.MaterialsContracts)
                        .ThenInclude(rec => rec.Materials)
                        .Include(rec => rec.Payment)
                        .Include(rec => rec.CustomerBase)
                        .FirstOrDefault(rec => rec.Id == model.Id);
         return(contract != null ?
                new ContractViewModel
         {
             Id = contract.Id,
             DateOfConclusion = contract.DateOfConclusion,
             CustomerBaseId = contract.CustomerBase.Id,
             EmployeeId = contract.Employee.Id,
             CustomerBase = contract.CustomerBase.Surname,
             Employee = contract.Employee.Surname,
             Payment = contract.Payment.Summ,
             Materials = contract.MaterialsContracts
                         .Select(rc => new MaterialsViewModel {
                 Id = rc.Materials.Id, Name = rc.Materials.Name, Price = rc.Materials.Price
             })
                         .ToList(),
             Services = contract.ServicesContracts
                        .Select(rc => new ServicesViewModel {
                 Id = rc.Services.Id, Name = rc.Services.Name, Price = rc.Services.Price
             })
                        .ToList()
         } :
                null);
     }
 }
예제 #17
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="contractBindingModel"></param>
        /// <returns></returns>
        public async Task <ResponseModel> AddContract(ContractBindingModel contractBindingModel)
        {
            var    amountToSend = new HexBigInteger(1000000000000000000);
            string keccak       = Multihash.Encode(contractBindingModel.Token1 + contractBindingModel.Token2, HashType.KECCAK_256);

            byte[] keccak2 = Multihash.Encode(contractBindingModel.Token1 + contractBindingModel.Token2, HashType.KECCAK_256);


            var web3 = new Web3(_account, _blockChainUrl);

            var deployment = CreateGenericContract(Guid.NewGuid(), contractBindingModel);

            deployment.Gas = DefaultGasAmount;

            var transactionHash = await GenericContractService.DeployContractAsync(web3, deployment);

            //var addAttachment = await service.AddAttachmentHashRequestAndWaitForReceiptAsync(new AddAttachmentHashFunction
            //{
            //  FromAddress = _account.Address,
            //  Hash = contractBindingModel.FileChecksum,
            //  Gas = DefaultGasAmount
            //});

            var contractId = transactionHash;
            var abi        = _contractRepository.GetAbi();
            var bin        = _contractRepository.GetBin();

            var responseModel = new ResponseModel(contractBindingModel.ContextId, contractId, bin, abi);

            _ = BenChainClientApi.Client.Signator.BenChainUpdateWithHttpMessagesAsync(new SignatoryModel
            {
                BenChainABI        = abi,
                BenChainBytescode  = bin,
                BenChainContractId = contractId,
                ContextId          = contractBindingModel.ContextId
            });

            return(responseModel);
        }
예제 #18
0
 public void Update(ContractBindingModel model)
 {
     using (var context = new ComputerRepairDatabase())
     {
         using (var transaction = context.Database.BeginTransaction())
         {
             try
             {
                 var element = context.Contract.FirstOrDefault(rec => rec.Id == model.Id);
                 if (element == null)
                 {
                     throw new Exception("Элемент не найден");
                 }
                 CreateModel(model, element, context);
                 transaction.Commit();
             }
             catch
             {
                 transaction.Rollback();
                 throw;
             }
         }
     }
 }
예제 #19
0
 public IActionResult ModifyContract(ContractBindingModel model)
 {
     System.IO.File.WriteAllText(CONTRACT_PATH, model.ContractContent);
     return(this.Ok(model));
 }