public ResponseObject <bool> CreateContract(ContractAPIViewModel model)
        {
            try
            {
                var contractRepo   = DependencyUtils.Resolve <IContractRepository>();
                var createContract = new Contract();

                createContract.CompanyId     = model.CompanyId;
                createContract.ContractName  = model.ContractName;
                createContract.StartDate     = model.StartDate.ToDateTime();
                createContract.EndDate       = model.EndDate.ToDateTime();
                createContract.IsDelete      = false;
                createContract.CreateDate    = DateTime.UtcNow.AddHours(7);
                createContract.UpdateDate    = DateTime.UtcNow.AddHours(7);
                createContract.ContractPrice = model.ContractPrice;

                contractRepo.Add(createContract);
                contractRepo.Save();

                var contractServiceRepo = DependencyUtils.Resolve <IContractServiceITSupportRepository>();

                foreach (var item in model.ServiceIdList)
                {
                    var contractService = new ContractServiceITSupport()
                    {
                        ContractId         = createContract.ContractId,
                        ServiceITSupportId = item,
                        IsDelete           = false,
                        StartDate          = model.StartDate.ToDateTime(),
                        EndDate            = model.EndDate.ToDateTime(),
                        CreateDate         = DateTime.UtcNow.AddHours(7),
                        UpdateDate         = DateTime.UtcNow.AddHours(7)
                    };

                    contractServiceRepo.Add(contractService);
                }
                contractServiceRepo.Save();

                return(new ResponseObject <bool> {
                    IsError = false, SuccessMessage = "Thêm hợp đồng thành công", ObjReturn = true
                });
            }
            catch (Exception ex)
            {
                return(new ResponseObject <bool> {
                    IsError = true, WarningMessage = "Thêm hợp đồng thất bại", ErrorMessage = ex.ToString(), ObjReturn = false
                });
            }
        }
        public ResponseObject <bool> UpdateContract(ContractAPIViewModel model)
        {
            try
            {
                var contractRepo        = DependencyUtils.Resolve <IContractRepository>();
                var contractServiceRepo = DependencyUtils.Resolve <IContractServiceITSupportRepository>();
                var updateContract      = contractRepo.GetActive().SingleOrDefault(a => a.ContractId == model.ContractId);
                var contractService     = contractServiceRepo.GetActive().Where(a => a.ContractId == model.ContractId).ToList();

                foreach (var itemFE in model.ServiceIdList)
                {
                    if (!contractService.Select(x => x.ServiceITSupportId).ToList().Contains(itemFE))
                    {
                        var contractServiceNew = new ContractServiceITSupport()
                        {
                            ContractId         = model.ContractId,
                            ServiceITSupportId = itemFE,
                            IsDelete           = false,
                            StartDate          = model.StartDate.ToDateTime(),
                            EndDate            = model.EndDate.ToDateTime(),
                            CreateDate         = DateTime.UtcNow.AddHours(7),
                            UpdateDate         = DateTime.UtcNow.AddHours(7),
                        };
                        contractServiceRepo.Add(contractServiceNew);
                    }
                }

                foreach (var itemDB in contractService)
                {
                    if (!model.ServiceIdList.Contains(itemDB.ServiceITSupportId))
                    {
                        itemDB.UpdateDate = DateTime.UtcNow.AddHours(7);
                        contractServiceRepo.Deactivate(itemDB);
                    }
                }
                contractServiceRepo.Save();

                if (updateContract != null)
                {
                    updateContract.ContractName  = model.ContractName;
                    updateContract.StartDate     = model.StartDate.ToDateTime();
                    updateContract.EndDate       = model.EndDate.ToDateTime();
                    updateContract.UpdateDate    = DateTime.UtcNow.AddHours(7);
                    updateContract.ContractPrice = model.ContractPrice;

                    contractRepo.Edit(updateContract);
                    contractRepo.Save();
                    return(new ResponseObject <bool> {
                        IsError = false, SuccessMessage = "Chỉnh sửa hợp đồng thành công", ObjReturn = true
                    });
                }

                return(new ResponseObject <bool> {
                    IsError = true, WarningMessage = "Chỉnh sửa hợp đồng thất bại", ObjReturn = false
                });
            }
            catch (Exception e)
            {
                return(new ResponseObject <bool> {
                    IsError = true, WarningMessage = "Chỉnh sửa hợp đồng thất bại", ObjReturn = false, ErrorMessage = e.ToString()
                });
            }
        }