コード例 #1
0
        public async Task <ContractResponseModel> CheckTenderCanBeLinkedToContract([FromBody] ContractCanBeLinkedEnquiryModel contractCanBeLinkedEnquiryModel)
        {
            try
            {
                if (contractCanBeLinkedEnquiryModel == null)
                {
                    throw new Exception("missing parameters");
                }
                var res = await _contractAppService.CheckTenderCanBeLinkedToContract(contractCanBeLinkedEnquiryModel.TenderReferenceNumber, contractCanBeLinkedEnquiryModel.AgencyCode);

                ContractResponseModel contractResponseModel = _mapper.Map <ContractResponseModel>(res);
                return(contractResponseModel);
            }
            catch (NullReferenceException ex)
            {
                Logger.LogToFile(ex.Message.ToString(), "NullReferenceException");
                _logger.LogError(ex.ToString(), ex);
                return(new ContractResponseModel()
                {
                    StatusCode = ServiceStatusCodes.NoDataFound, StatusDesc = ex.Message
                });
            }
            catch (Exception ex)
            {
                Logger.LogToFile(ex.Message.ToString(), "Exception");
                _logger.LogError(ex.ToString(), ex);
                return(new ContractResponseModel()
                {
                    StatusCode = ServiceStatusCodes.WrongInputData, StatusDesc = ex.Message
                });
            }
        }
コード例 #2
0
        public IHttpActionResult Post(ContractResponseModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.BadRequest(this.ModelState));
            }

            var newContractId = this.contracts.Add(
                model.HitmanId,
                model.ClientId,
                model.Deadline,
                model.TargetName,
                model.Location);

            return(this.Created(this.Url.ToString(), newContractId));
        }
コード例 #3
0
        public IHttpActionResult ApproveContract(ContractResponseModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.BadRequest(this.ModelState));
            }

            var updated = this.contracts.UpdateConnectionStatus(model.Id, (ConnectionStatus)model.Status);

            if (updated == -1)
            {
                return(this.NotFound());
            }

            return(this.Ok(updated));
        }
コード例 #4
0
        public IHttpActionResult ApproveContract(ContractResponseModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return this.BadRequest(this.ModelState);
            }

            var updated = this.contracts.UpdateConnectionStatus(model.Id, (ConnectionStatus)model.Status);

            if (updated == -1)
            {
                return this.NotFound();
            }

            return this.Ok(updated);
        }
コード例 #5
0
        public ContractResponseModel GenerateContractTemplate(int providerId, int contractId)
        {
            var contract = this.Data.ClientContracts
                .All()
                .ProjectTo<ClientContractViewModel>()
                .FirstOrDefault(c => c.Id == contractId);

            var contractTemplate = this.Data.Providers
                .GetById(providerId).ContractTemplate;

            var client = this.Data.Clients
                .All()
                .ProjectTo<ClientViewModel>()
                .FirstOrDefault(c => c.Id == contract.ClientId);

            var provider = this.Data.Providers
                .All()
                .ProjectTo<ProviderViewModel>()
                .FirstOrDefault(p => p.Id == providerId);

            var invoices = this.Data.Invoices
                .All()
                .ProjectTo<InvoiceViewModel>()
                .Where(i => i.ClientContractId == contract.Id)
                .ToList();

            var channelsIds = this.Data.ClientContracts.GetById(contractId)
                .Channels
                .Select(c => c.Id)
                .ToList();

            var channels = this.Data.Channels
                .All()
                .Where(c => channelsIds.Contains(c.Id))
                .ProjectTo<ChannelViewModel>()
                .ToList();

            var trds = this.Data.Trds
                .All()
                .ProjectTo<TrdViewModel>()
                .Where(t => t.ClientId == contract.ClientId)
                .ToList();

            var clientTypeIf = int.Parse(client.TypeOfCompany);

            var typeOfClientContract = this.Data.TypeOfCompanies
                .All()
                .ProjectTo<TypeOfCompanyViewModel>()
                .FirstOrDefault(t => t.Id == clientTypeIf);

            var totalMgSubs = 0.0;
            var totalCps = 0.0;
            foreach (var invoice in invoices)
            {
                var mgSubsAsInt = invoice.MgSubs;
                var cpsInt = invoice.MgSubs;

                totalMgSubs += mgSubsAsInt;
                totalCps += cpsInt;
            }

            var sum = 0.0;
            if (invoices.Any())
            {
                foreach (var invoice in invoices)
                {
                    var msSubsAsDouble = invoice.MgSubs;
                    var cpsAsDouble = invoice.Cps;
                    sum += (msSubsAsDouble * cpsAsDouble);
                }
            }

            var response = new ContractResponseModel()
            {
                Sum = sum,
                Client = client,
                Provider = provider,
                Channels = channels,
                Invoices = invoices,
                Trds = trds,
                MgSubs = totalMgSubs,
                Cps = totalCps,
                ClientContractType = typeOfClientContract,
                Contract = contract,
                ContractTemplate = contractTemplate
            };

            return response;
        }
コード例 #6
0
        public IHttpActionResult Post(ContractResponseModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return this.BadRequest(this.ModelState);
            }

            var newContractId = this.contracts.Add(
                model.HitmanId,
                model.ClientId,
                model.Deadline,
                model.TargetName,
                model.Location);

            return this.Created(this.Url.ToString(), newContractId);
        }