Beispiel #1
0
        public static void Main(string[] args)
        {
            ContractLog.Init();

            IList <Thread> threads = new List <Thread>();
            ConcurrentQueue <ContractTask> tasks = new ConcurrentQueue <ContractTask>();

            var web3 = InitWeb3();

            if (web3 != null)
            {
                var oracle = new Oracle(web3);

                threads.Add(new Thread(() => CreateHostBuilder(args).Build().Run()));

                for (int i = 0; i < 3; ++i)
                {
                    threads.Add(new Thread(() => DemoOfContractExecute(oracle, tasks)));
                }

                foreach (var thread in threads)
                {
                    thread.Start();
                }

                // generate contracts
                for (int i = 0; i < 9; ++i)
                {
                    tasks.Enqueue(new ContractTask(oracle));
                }
            }

            ContractLog.Close();
        }
        public virtual IActionResult DeleteContractAcceptanceNoiBo(int Id)
        {
            var item = _contractService.GetContractAcceptanceNoiBoById(Id);

            if (item == null)
            {
                ErrorNotification("Không thể xoá");
                return(RedirectToAction("List"));
            }
            _contractService.DeleteContractAcceptance(item);
            // Insert ContractLog
            var contractLog = new ContractLog()
            {
                ContractId   = item.Id,
                CreatedDate  = DateTime.Now,
                CreatorId    = _workContext.CurrentCustomer.Id,
                ContractData = item.ToModel <ContractAcceptanceModel>().toStringJson()
            };

            _contractLogService.InsertContractLog(contractLog, "Xóa nghiệm thu nội bộ: " + item.Name);
            var lstAcceptanceSub = _contractService.GetAllContractAcceptanceSubByAcceptanceNoiBoId(item.Id);

            foreach (ContractAcceptanceSub acceptanceSub in lstAcceptanceSub)
            {
                _contractService.DeleteContractAcceptanceSub(acceptanceSub);
            }
            return(JsonSuccessMessage(_localizationService.GetResource("AppWork.Contract.ContractAcceptance.Deleted")));
        }
        /// <summary>
        /// Gets the contract log list.
        /// </summary>
        /// <param name="paymentResultDictionary">The payment result dictionary.</param>
        /// <param name="contractList">The contract list.</param>
        /// <returns></returns>
        private static List <ContractLog> GetContractLogList(Dictionary <long, List <PaymentResult> > paymentResultDictionary,
                                                             List <Contract> contractList)
        {
            List <ContractLog> contractLogs = new List <ContractLog>();

            if (paymentResultDictionary != null && paymentResultDictionary.Count > 0)
            {
                foreach (var paymentResultKeyValuePair in paymentResultDictionary.Where(q => q.Value != null))
                {
                    ContractLog contractLog = new ContractLog {
                        ClaimId = paymentResultKeyValuePair.Key
                    };

                    PaymentResult overAllClaimPaymentResult = paymentResultKeyValuePair.Value.FirstOrDefault(
                        payment => payment.Line == null && payment.ServiceTypeId == null);

                    //Get ContractId and Contract Name
                    long?    matchedContractId   = null;
                    string   matchedContractName = string.Empty;
                    Contract matchedContract     = null;
                    if (overAllClaimPaymentResult != null)
                    {
                        if (overAllClaimPaymentResult.ContractId.HasValue)
                        {
                            matchedContractId = overAllClaimPaymentResult.ContractId;
                            matchedContract   =
                                contractList.FirstOrDefault(
                                    q =>
                                    matchedContractId != null &&
                                    q.ContractId == overAllClaimPaymentResult.ContractId);
                            if (matchedContract != null)
                            {
                                matchedContractName = matchedContract.ContractName;
                            }
                        }
                        EnumHelper enumHelper = EnumHelperLibrary.GetFieldInfoFromEnum((Enums.AdjudicationOrVarianceStatuses)overAllClaimPaymentResult.ClaimStatus);
                        contractLog.StatusCode = enumHelper.FieldName;
                    }

                    contractLog.ContractId   = matchedContractId;
                    contractLog.ContractName = matchedContractName;
                    contractLog.InsertDate   = DateTime.UtcNow;
                    contractLogs.Add(contractLog);

                    //Add log for claim level adjudicated data
                    contractLogs.AddRange(GetClaimLevelContractLogList(paymentResultKeyValuePair, contractList,
                                                                       matchedContract));

                    //Add log for line level adjudicated data
                    contractLogs.AddRange(GetLineLevelContractLogList(paymentResultKeyValuePair, matchedContract));
                }
            }
            contractLogs = UpdateLogContent(contractLogs);
            return(contractLogs);
        }
 /// <summary>
 /// Inserts a review type
 /// </summary>
 /// <param name="item">Review type</param>
 public virtual void InsertContractLog(ContractLog item, string note)
 {
     if (item == null)
     {
         throw new ArgumentNullException(nameof(item));
     }
     item.Note = note;
     _itemRepository.Insert(item);
     //event notification
     _eventPublisher.EntityInserted(item);
 }
Beispiel #5
0
        public void InsertContractLogDelete(Task item)
        {
            var contract    = _contractService.GetContractById(item.ContractId);
            var task        = _workTaskService.GetTaskById(item.Id);
            var contractlog = new ContractLog();

            contractlog.ContractId   = contract.Id;
            contractlog.CreatedDate  = DateTime.Now;
            contractlog.CreatorId    = _workContext.CurrentCustomer.Id;
            contractlog.ContractData = task.ToModel <TaskModel>().toStringJson();
            contractlog.PeriodId     = contract.PeriodId;
            _contractLogService.InsertContractLog(contractlog, "Xoá công việc " + item.Name);
        }
        /// <summary>
        /// Gets the line level contract log list.
        /// </summary>
        /// <param name="paymentResultKeyValuePair">The payment result key value pair.</param>
        /// <param name="contract">The contract.</param>
        /// <returns></returns>
        private static IEnumerable <ContractLog> GetLineLevelContractLogList(KeyValuePair <long, List <PaymentResult> > paymentResultKeyValuePair, Contract contract)
        {
            List <ContractLog> contractLogs = new List <ContractLog>();

            List <PaymentResult> paymentResults =
                paymentResultKeyValuePair.Value.Where(q => q.Line != null).ToList();

            if (paymentResults.Any())
            {
                long?  contractId   = contract != null ? contract.ContractId : (long?)null;
                string contractName = contract != null ? contract.ContractName : string.Empty;

                foreach (PaymentResult paymentResult in paymentResults)
                {
                    ContractLog contractLog = new ContractLog
                    {
                        ClaimId      = paymentResult.ClaimId,
                        ContractId   = contractId,
                        ContractName = contractName,
                        ServiceLine  = paymentResult.Line
                    };

                    EnumHelper enumHelperClaimCharge = EnumHelperLibrary.GetFieldInfoFromEnum((Enums.AdjudicationOrVarianceStatuses)paymentResult.ClaimStatus);
                    contractLog.StatusCode = enumHelperClaimCharge.FieldName;

                    if (contract != null && paymentResult.ServiceTypeId.HasValue)
                    {
                        ContractServiceType contractServiceType =
                            contract.ContractServiceTypes.FirstOrDefault(
                                q => q.ContractServiceTypeId == paymentResult.ServiceTypeId);
                        if (contractServiceType != null)
                        {
                            contractLog.ServiceTypeName = contractServiceType.ContractServiceTypeName;

                            contractLogs.Add(GetLineItemFoundLog(paymentResult, contractId,
                                                                 contractName, contractServiceType.ContractServiceTypeName));

                            if (paymentResult.PaymentTypeId.HasValue)
                            {
                                EnumHelper enumHelperPaymentType = EnumHelperLibrary.GetFieldInfoFromEnum((Enums.PaymentTypeCodes)paymentResult.PaymentTypeId.Value);
                                contractLog.PaymentType = enumHelperPaymentType.FieldName;
                            }
                        }
                    }
                    contractLog.InsertDate = DateTime.UtcNow;
                    contractLogs.Add(contractLog);
                }
            }
            return(contractLogs);
        }
        /// <summary>
        /// Gets the line item found log.
        /// </summary>
        /// <param name="lineLevelPaymentResult">The line level payment result.</param>
        /// <param name="contractId">The contract identifier.</param>
        /// <param name="contractName">Name of the contract.</param>
        /// <param name="serviceTypeName">Name of the service type.</param>
        /// <returns></returns>
        private static ContractLog GetLineItemFoundLog(PaymentResult lineLevelPaymentResult, long?contractId, string contractName, string serviceTypeName)
        {
            EnumHelper enumHelperClaimChargeLineItemFound = EnumHelperLibrary.GetFieldInfoFromEnum(Enums.AdjudicationOrVarianceStatuses.LineItemMatchesAServiceLine);

            ContractLog contractLog = new ContractLog
            {
                ClaimId         = lineLevelPaymentResult.ClaimId,
                ServiceLine     = lineLevelPaymentResult.Line,
                StatusCode      = enumHelperClaimChargeLineItemFound.FieldName,
                ContractId      = contractId,
                ContractName    = contractName,
                ServiceTypeName = serviceTypeName,
                InsertDate      = DateTime.UtcNow,
            };

            return(contractLog);
        }
Beispiel #8
0
        public virtual IActionResult ProcuringAgencyTaskAdd(TaskModel model)
        {
            var task = _workTaskService.GetTaskById(model.Id);

            if (task != null)
            {
                if (model.TaskProcuringAgencyId > 0)
                {
                    task.TaskProcuringAgencyId = model.TaskProcuringAgencyId;
                }
                else
                {
                    task.TaskProcuringAgencyId = null;
                }
                _workTaskService.UpdateTask(task);
                return(JsonSuccessMessage("Cập nhật liên danh thành công!"));
            }
            //them contractlog vs Tasklog
            //Insert Contract Log
            var contract    = _contractService.GetContractById(task.ContractId);
            var contractLog = new ContractLog()
            {
                ContractId   = contract.Id,
                CreatedDate  = DateTime.Now,
                CreatorId    = _workContext.CurrentCustomer.Id,
                ContractData = task.ToModel <TaskModel>().toStringJson()
            };

            _contractLogService.InsertContractLog(contractLog, "Thêm liên danh cho công việc " + task.Name);
            // Insert TaskLog
            var TaskLogModel = new TaskLogModel
            {
                TaskId = task.Id,
                Note   = "Thêm liên danh cho công việc."
            };

            _taskModelFactory.InsertTaskLog(TaskLogModel);
            return(JsonErrorMessage());
        }
        public virtual IActionResult Create(ContractAcceptanceModel model)
        {
            var noti = "admin.common.Added";
            var item = new ContractAcceptance();

            if (ModelState.IsValid && model.listAcceptanceSub.Count > 0)
            {
                if (model.Id > 0)
                {
                    item = _contractService.getContractAcceptancebyId(model.Id);
                    _contractModelFactory.PrepareContractAcceptanceNoiboForUnit(model, item);
                    //remove listAcceptanceSub cu
                    _contractService.DeleteContractAcceptanceSubByAcceptanceId(AccepId: model.Id, TypeId: (int)ContractAcceptancesType.NoiBo);
                }
                // add ContractAcceptanceNoibo
                _contractModelFactory.PrepareContractAcceptanceNoiboForUnit(model, item);
                if (model.Id > 0)
                {
                    _contractService.UpdateContractAcceptance(item);
                    // Insert ContractLog
                    var contractLog = new ContractLog()
                    {
                        ContractId   = item.Id,
                        CreatedDate  = DateTime.Now,
                        CreatorId    = _workContext.CurrentCustomer.Id,
                        ContractData = item.ToModel <ContractAcceptanceModel>().toStringJson()
                    };
                    _contractLogService.InsertContractLog(contractLog, "Sửa nghiệm thu nội bộ: " + item.Name);
                    noti = "admin.common.updated";
                }
                else
                {
                    _contractService.InsertContractAcceptance(item);
                    // Insert ContractLog
                    var contractLog = new ContractLog()
                    {
                        ContractId   = item.Id,
                        CreatedDate  = DateTime.Now,
                        CreatorId    = _workContext.CurrentCustomer.Id,
                        ContractData = item.ToModel <ContractAcceptanceModel>().toStringJson()
                    };
                    _contractLogService.InsertContractLog(contractLog, "Thêm mới nghiệm thu nội bộ: " + item.Name);
                }
                //var _cas = new ContractAcceptanceSub();
                foreach (ContractAcceptanceSubModel _casModel in model.listAcceptanceSub)
                {
                    _casModel.Description = item.Name;
                    var _cas = _contractModelFactory.PrepareContractAcceptanceSubByTask(_casModel, null);
                    _cas.AcceptanceId = item.Id;
                    _contractService.InsertContractAcceptionSub(_cas);
                    if (model.SelectedListFileId.Count > 0)
                    {
                        foreach (int FileId in model.SelectedListFileId)
                        {
                            var contractFile = new ContractFile
                            {
                                ContractId = _cas.ContractId,
                                FileId     = FileId,
                                TypeId     = (int)ContractFileType.AcceptanceNoiBo,
                                EntityId   = item.Id.ToString(),
                            };
                            _contractService.InsertContractFile(contractFile);
                        }
                    }
                }
                return(JsonSuccessMessage(_localizationService.GetResource(noti)));
            }
            else
            {
                var list = ModelState.Values.Where(c => c.Errors.Count > 0).ToList();
                return(JsonErrorMessage("Error", list));
            }
        }