Exemplo n.º 1
0
        public async Task <List <ContractInfo> > GetFullContractOnOrganization(int organizationId)
        {
            List <ContractInfo> fullInfo = new List <ContractInfo>();
            List <Contract>     orgContracts;

            using (var context = new ContractContext())
            {
                orgContracts = await context.Contracts.Where(con => con.OrganizationId == organizationId).AsNoTracking().ToListAsync();
            }
            foreach (var contract in orgContracts)
            {
                var hardwareTask = await HardwaresForContractAsync(contract);

                var softwareTask = await SoftwaresForContractAsynk(contract);

                fullInfo.Add(
                    new ContractInfo()
                {
                    Id              = contract.Id,
                    Number          = contract.Number,
                    StartDate       = contract.StartDate,
                    EndDate         = contract.EndDate,
                    HardwareForInfo = hardwareTask,
                    SoftwareForInfo = softwareTask
                }
                    );
            }
            return(fullInfo);
        }
Exemplo n.º 2
0
 public async Task ChangeOrganization(OrganizationDTO organization)
 {
     using (ContractContext context = new ContractContext())
     {
         var org = context.Organizations.Where(org => org.Id == organization.Id).FirstOrDefault();
         if (!org.Name.Equals(organization.Name))
         {
             org.Name = organization.Name;
         }
         if (!org.FullName.Equals(organization.FullName))
         {
             org.FullName = organization.FullName;
         }
         if (!org.Address.Equals(organization.Address))
         {
             org.Address = organization.Address;
         }
         if (!org.Email.Equals(organization.Email))
         {
             org.Email = organization.Email;
         }
         if (!org.Smdo.Equals(organization.Smdo))
         {
             org.Smdo = organization.Smdo;
         }
         await context.SaveChangesAsync();
     }
 }
        public bool CheckCompatibility(ContractContext context)
        {
            if (null == context)
            {
                throw new ArgumentNullException(nameof(context));
            }

            return(true);
        }
Exemplo n.º 4
0
        //[ClassInitialize]
        public static void Init(TestContext context)
        {
            //Used for connectionstring
            AppDomain.CurrentDomain.SetData("DataDirectory", System.IO.Directory.GetCurrentDirectory());
            var db = new ContractContext("");

            db.Contracts.RemoveRange(db.Contracts);
            db.SaveChanges();
        }
Exemplo n.º 5
0
        public async Task DelAreaAsync(int id)
        {
            using (ContractContext context = new ContractContext())
            {
                var area = await context.Areas.FindAsync(id);

                context.Areas.Remove(area);
                await context.SaveChangesAsync();
            }
        }
Exemplo n.º 6
0
        public async Task UpdateAreaAsync(AreaDTO areaDTO)
        {
            using (ContractContext context = new ContractContext())
            {
                var area = await context.Areas.Where(a => a.Id == areaDTO.Id).SingleAsync();

                area.FullName   = areaDTO.FullName;
                area.SimpleName = areaDTO.SimpleName;
                await context.SaveChangesAsync();
            }
        }
Exemplo n.º 7
0
        public async Task AddPerson(PersonDTO personDTO)
        {
            var config = new MapperConfiguration(cfg => cfg.CreateMap <PersonDTO, Person>());
            var mapper = new Mapper(config);

            using (ContractContext context = new ContractContext())
            {
                await context.People.AddAsync(mapper.Map <Person>(personDTO));

                await context.SaveChangesAsync();
            }
        }
Exemplo n.º 8
0
        public async Task <List <ServiceInfoDTO> > GetServicesInfoAsync()
        {
            List <ServiceInfo> services = new List <ServiceInfo>();
            var config = new MapperConfiguration(cfg => cfg.CreateMap <ServiceInfo, ServiceInfoDTO>());
            var mapper = new Mapper(config);

            using (ContractContext context = new ContractContext())
            {
                services = await context.ServiceInfo.AsNoTracking().ToListAsync();
            }
            return(mapper.Map <List <ServiceInfoDTO> >(services));
        }
        public Form GetForm(ContractContext context)
        {
            if (null == context)
            {
                throw new ArgumentNullException(nameof(context));
            }

            var signatures = context.Contract.Signatures.Select(s =>
            {
                var formattingService = context.UnityContainer.Resolve <IFormattingService>();

                var identifierValue = formattingService.FormatIdentifier(s.AcceptorIdentifier);
                var acceptTimeValue = null == s.AcceptTime
                        ? string.Empty
                        : formattingService.FormatDateTime(s.AcceptTime.Value);
                return(new ListItemContent(new ResultRecord(identifierValue, acceptTimeValue))
                {
                    ImageKey = "Ant"
                });
            })
                             .ToList();

            var valuesWrapper = new ContractDetailsFormValuesWrapper
            {
                Control1Name             = context.Contract.Name,
                Control2Text             = context.Contract.Text,
                Control3HasLimitedAccess = !context.Contract.IsPublic,
                Control4Details          = signatures
            };

            var form = SubmitFormDisplayHelper.LoadSubmitFormByExtensionId(context.ExtensionManager,
                                                                           ExtensionCatalog.ContractDetails, valuesWrapper.CollectIncomeValues());

            form.ServiceCommand += (sender, args) =>
            {
                if (!"Copy".Equals(args.Command))
                {
                    return;
                }

                var resultRecord = args.Argument as ResultRecord;

                if (null != resultRecord)
                {
                    string text = string.Format(CultureInfo.InvariantCulture, "{0} {1}", resultRecord.Name,
                                                resultRecord.Value);
                    Clipboard.SetText(text, TextDataFormat.UnicodeText);
                }
            };

            return(form);
        }
Exemplo n.º 10
0
        public async Task AddAreaAsync(AreaDTO areaDTO)
        {
            var config = new MapperConfiguration(cfg => cfg.CreateMap <AreaDTO, Area>());
            var mapper = new Mapper(config);
            var area   = mapper.Map <Area>(areaDTO);

            using (ContractContext context = new ContractContext())
            {
                await context.Areas.AddAsync(area);

                await context.SaveChangesAsync();
            }
        }
Exemplo n.º 11
0
        public async Task <List <AreaToMenu> > GetAreasSimpleAsync()
        {
            List <AreaToMenu> areas = new List <AreaToMenu>();

            using (ContractContext context = new ContractContext())
            {
                areas = await context.Areas.Select(a => new AreaToMenu()
                {
                    Id         = a.Id,
                    SimpleName = a.SimpleName
                }).
                        OrderBy(a => a.SimpleName).AsNoTracking().ToListAsync();
            }
            return(areas);
        }
Exemplo n.º 12
0
        private async Task <List <HardwareForInfo> > HardwaresForContractAsync(Contract contract)
        {
            List <HardwareForInfo> hardwares = new List <HardwareForInfo>();

            using (var context = new ContractContext())
            {
                hardwares = await context.ServiceHardwares.Where(hard => hard.ContractId == contract.Id).Include(info => info.ServiceInfo).
                            Select(item => new HardwareForInfo()
                {
                    ServerCount     = item.ServerCount,
                    WorkplaceCount  = item.WorkplaceCount,
                    ServiceInfoName = item.ServiceInfo.Name
                }).AsNoTracking().ToListAsync();
            }
            return(hardwares);
        }
Exemplo n.º 13
0
        private async Task <List <SoftwareForInfo> > SoftwaresForContractAsynk(Contract contract)
        {
            List <SoftwareForInfo> softwares = new List <SoftwareForInfo>();

            using (var context = new ContractContext())
            {
                softwares = await context.ServiceSoftwares.Where(hard => hard.ContractId == contract.Id).Include(info => info.ServiceInfo).
                            Select(item => new SoftwareForInfo()
                {
                    MainPlaceCount       = item.MainPlaceCount,
                    AdditionalPlaceCount = item.AdditionalPlaceCount,
                    ServiceInfoName      = item.ServiceInfo.Name
                }).AsNoTracking().ToListAsync();
            }
            return(softwares);
        }
Exemplo n.º 14
0
        public async Task <List <OrganizationDTO> > GetOrganizationOnAreaAsync(int areaId)
        {
            List <OrganizationDTO> organization     = new List <OrganizationDTO>();
            List <Organization>    AllOrganizations = new List <Organization>();

            using (ContractContext context = new ContractContext())
            {
                AllOrganizations = await context.Organizations.Where(org => org.AreaId == areaId).OrderBy(org => org.FullName).AsNoTracking().ToListAsync();
            }
            var config = new MapperConfiguration(cfg => cfg.CreateMap <Organization, OrganizationDTO>());
            var mapper = new Mapper(config);

            organization = mapper.Map <List <OrganizationDTO> >(AllOrganizations);

            return(organization);
        }
Exemplo n.º 15
0
        public async Task <List <PersonWithOrgName> > GetPersonWithOrg()
        {
            var personWithOrgName = new List <PersonWithOrgName>();
            var config            = new MapperConfiguration(cfg => cfg.CreateMap <Person, PersonDTO>());
            var mapper            = new Mapper(config);

            using (ContractContext context = new ContractContext())
            {
                personWithOrgName = await context.People.OrderBy(p => p.LastName).AsNoTracking().Select(p => new PersonWithOrgName()
                {
                    Person  = mapper.Map <PersonDTO>(p),
                    OrgName = p.Organization.Name
                }).ToListAsync();;
            }
            return(personWithOrgName);
        }
Exemplo n.º 16
0
        public async Task <double> GetCostOnPeriod(int areaId, DateTime startFilter, DateTime endFilter)
        {
            double          fullCost = 0;
            List <Contract> contracts;

            using (ContractContext context = new ContractContext())
            {
                // Where Is filter contract on crossing date. If contract started and ended before filter it skip
                contracts = await context.Contracts.Where(c => c.Organization.AreaId == areaId).Include(c => c.ServicesHardware).ThenInclude(sh => sh.ServiceInfo).
                            Include(c => c.ServicesSoftware).ThenInclude(sh => sh.ServiceInfo).
                            Where((c => (!((startFilter < c.StartDate && endFilter < c.StartDate) || (startFilter > c.EndDate && endFilter > c.EndDate))))).
                            AsNoTracking().ToListAsync();
            }
            fullCost += GetCostHardware(contracts, startFilter, endFilter);
            fullCost += GetCostSoftware(contracts, startFilter, endFilter);
            return(fullCost);
        }
Exemplo n.º 17
0
        public async Task <List <AreaCountOrg> > GetAreasForIndexAsync()
        {
            List <AreaCountOrg> areas = new List <AreaCountOrg>();

            var config = new MapperConfiguration(cfg => cfg.CreateMap <Area, AreaDTO>());
            var mapper = new Mapper(config);

            using (ContractContext context = new ContractContext())
            {
                areas = await context.Areas.Include(a => a.Organizations).Select(area => new AreaCountOrg()
                {
                    Area     = mapper.Map <AreaDTO>(area),
                    CountOrg = area.Organizations.Count()
                }).AsNoTracking().ToListAsync();
            }
            return(areas);
        }
Exemplo n.º 18
0
        public async Task AddOrganization(OrganizationDTO organizationDTO, PersonDTO personDTO)
        {
            var configOrganization = new MapperConfiguration(cfg => cfg.CreateMap <OrganizationDTO, Organization>());
            var configPerson       = new MapperConfiguration(cfg => cfg.CreateMap <PersonDTO, Person>());

            var mapperOrganization = new Mapper(configOrganization);
            var mapperPerson       = new Mapper(configPerson);

            var organization = mapperOrganization.Map <Organization>(organizationDTO);
            var person       = mapperPerson.Map <Person>(personDTO);

            person.Organization = organization;
            using (ContractContext context = new ContractContext())
            {
                await context.People.AddAsync(person);

                await context.SaveChangesAsync();
            }
        }
Exemplo n.º 19
0
        public void RunAction(ContractContext context)
        {
            if (null == context)
            {
                throw new ArgumentNullException(nameof(context));
            }

            _synchronizationContex = SynchronizationContext.Current;

            ThreadPool.QueueUserWorkItem(state =>
            {
                Exception exception = null;

                try
                {
                    var contractService = context.UnityContainer.Resolve <IContractService>();
                    contractService.RefreshContract(context.Contract.Id);
                }
                catch (Exception e)
                {
                    exception = e;
                }

                _synchronizationContex.Post(o =>
                {
                    if (null != exception)
                    {
                        var errorContext =
                            new ErrorContext(exception.GetType().Name, exception.Message)
                        {
                            Details = exception.ToString()
                        };

                        context.ExtensionManager.GetErrorFormProvider().GetForm(errorContext).Show();
                    }

                    EventBroker.OnContractChanged();
                }, null);
            });
        }
Exemplo n.º 20
0
        public async Task UpdatePerson(PersonDTO personDTO)
        {
            var config = new MapperConfiguration(cfg => cfg.CreateMap <PersonDTO, Person>());
            var mapper = new Mapper(config);

            using (ContractContext context = new ContractContext())
            {
                var person = await context.People.Where(p => p.Id == personDTO.Id).FirstOrDefaultAsync();;
                if (!person.FirstName.Equals(personDTO.FirstName))
                {
                    person.FirstName = personDTO.FirstName;
                }
                if (!person.LastName.Equals(personDTO.LastName))
                {
                    person.LastName = personDTO.LastName;
                }
                if (!person.MiddleName.Equals(personDTO.MiddleName))
                {
                    person.MiddleName = personDTO.MiddleName;
                }
                if (!person.Position.Equals(personDTO.Position))
                {
                    person.Position = personDTO.Position;
                }
                if (!person.Phone.Equals(personDTO.Phone))
                {
                    person.Phone = personDTO.Phone;
                }
                if (!person.Email.Equals(personDTO.Email))
                {
                    person.Email = personDTO.Email;
                }
                if (!person.MobilePhone?.Equals(personDTO.MobilePhone) ?? true)
                {
                    person.MobilePhone = personDTO.MobilePhone;
                }

                await context.SaveChangesAsync();
            }
        }
Exemplo n.º 21
0
        public bool CheckCompatibility(ContractContext context)
        {
            if (null == context)
            {
                throw new ArgumentNullException(nameof(context));
            }

            if (context.Contract.IsPublic)
            {
                return(true);
            }

            switch (context.Contract.State)
            {
            case ContractState.Created:
            case ContractState.Signed:
                return(true);

            default:
                return(false);
            }
        }
Exemplo n.º 22
0
        public async Task AddContract(ContractDTO contractDTO, List <ServiceHardwareDTO> hardwaresDTO, List <ServiceSoftwareDTO> softwaresDTO)
        {
            var configContract  = new MapperConfiguration(cfg => cfg.CreateMap <ContractDTO, Contract>());
            var configHardwares = new MapperConfiguration(cfg => cfg.CreateMap <ServiceHardwareDTO, ServiceHardware>());
            var configSoftwares = new MapperConfiguration(cfg => cfg.CreateMap <ServiceSoftwareDTO, ServiceSoftware>());

            var mapperContract  = new Mapper(configContract);
            var mapperHardwares = new Mapper(configHardwares);
            var mapperSoftwares = new Mapper(configSoftwares);

            Contract contract = mapperContract.Map <Contract>(contractDTO);
            List <ServiceHardware> hardwares = mapperHardwares.Map <List <ServiceHardware> >(hardwaresDTO);
            List <ServiceSoftware> softwares = mapperSoftwares.Map <List <ServiceSoftware> >(softwaresDTO);

            contract.ServicesHardware = hardwares;
            contract.ServicesSoftware = softwares;

            using (ContractContext context = new ContractContext())
            {
                await context.Contracts.AddAsync(contract);

                await context.SaveChangesAsync();
            }
        }
 public Form GetForm(ContractContext context)
 {
     _context = context ?? throw new ArgumentNullException(nameof(context));
     return(GetForm(context.Contract));
 }
Exemplo n.º 24
0
 public ContractRepository(ContractContext context)
 {
     _context = context;
 }
Exemplo n.º 25
0
 public LoginManager(ContractContext context)
 {
     _contractContext = context;
 }
Exemplo n.º 26
0
        static void Main(string[] args)
        {
            var contractFiles    = Directory.GetFiles(@"C:\Users\SSV\Documents\Visual Studio 2017\Projects\XmlToSqlProject\ShortContract\contracts");
            var contractProvider = new ContractXmlProvider();
            List <ContractXmlModel> contractXmlList = new List <ContractXmlModel>();

            foreach (var item in contractFiles)
            {
                var contract = contractProvider.GetContract(item);
                contractXmlList.Add(contract);
            }

            var contracts = CustomersConverter.ConvertContracts(contractXmlList);


            var suppliers     = contractXmlList.Select(m => CustomersConverter.ConvertSupplier(m.Supplier));
            var customers     = contractXmlList.Select(m => CustomersConverter.ConvertCustomer(m.Customer));
            var uniqSuppliers = suppliers.Distinct(new SupplierComparer()).ToList();
            var uniqCustomers = customers.Distinct(new CustomerComparer()).ToList();

            foreach (var item in contracts)
            {
                var sup = uniqSuppliers.FirstOrDefault(s => s.Inn.Equals(item.Supplier.Inn));
                item.Supplier = sup;
                var cus = uniqCustomers.FirstOrDefault(s => s.Inn.Equals(item.Customer.Inn));
                item.Customer = cus;
            }

            //foreach (var sup in uniqSuppliers)
            //{
            //    var contr = contracts.Where(c => c.SupplierId.Equals(sup.Id));
            //    foreach (var item in contr)
            //    {
            //        sup.Contracts.Add(item);
            //    }
            //}

            //foreach (var cust in uniqCustomers)
            //{
            //    var contr = contracts.Where(c => c.CustomerId.Equals(cust.Inn));
            //    foreach (var item in contr)
            //    {
            //        cust.Contracts.Add(item);
            //    }
            //}



            using (ContractContext context = new ContractContext())
            {
                //context.Contracts.RemoveRange(context.Contracts);
                //  context.Suppliers.RemoveRange(context.Suppliers);
                // context.SaveChanges();
                //context.Suppliers.AddRange(uniqSuppliers);
                context.Contracts.AddRange(contracts);
                //
                context.SaveChanges();
            }

            Console.ReadLine();
        }
Exemplo n.º 27
0
 public BeContractDalTest()
 {
     BeContractEquals = new BeContractEqualsTest();
     Db = new ContractContext("");
 }
Exemplo n.º 28
0
 public ContractHandler(ContractContext db) => this.db = db;
        public Form GetForm(SessionContext context)
        {
            if (null == context)
            {
                throw new ArgumentNullException(nameof(context));
            }

            var origin = new FilterOrigin(context.ExtensionManager,
                                          ExtensionCatalog.ContractFilter)
            {
                MenuItemsTagName  = ExtensionCatalog.Tags.ContractExtension,
                CommandBarTagName = ExtensionCatalog.Tags.ContractFilterExtension,
                ColumnsSettings   = context.Session.SettingsService.GetSettings().ContractSettings
            };

            var template = FilterDisplayHelper.LoadFilterFormTemplate(origin);

            template.Title = Translator.Instance.Translate(ExtensionCatalog.TransferFilter, "Contracts");

            // Отключаем кнопки.
            foreach (var buttonTemplate in template.FilterScreen.CommandButtons)
            {
                var formProvider =
                    context.ExtensionManager.TryGetTopFormProvider(buttonTemplate.Command);

                if (!(formProvider?.CheckCompatibility(context) ?? false))
                {
                    buttonTemplate.Enabled = false;
                }
            }

            _form = new FilterForm();

            ErrorFormDisplayHelper.ApplyErrorAction(context.ExtensionManager, _form);

            var now = DateTime.Now;

            var incomeValuesWrapper = new TransferFilterFormValuesWrapper
            {
                Control1FromTime = new DateTime(now.Year, now.Month, now.Day, 0, 0, 0, DateTimeKind.Local),
                Control2ToTime   = new DateTime(now.Year, now.Month, now.Day, 23, 59, 59, DateTimeKind.Local)
            };

            _form.ApplyTemplate(template);
            _form.ApplyShapeValues(incomeValuesWrapper.CollectIncomeValues());

            // Подписка на создание/изменение контракта
            EventBroker.ContractChanged += EventBrokerOnContractChanged;

            // Сохранение документа
            _form.SaveItemsCallback = (s, list) =>
            {
                var importExportService = context.UnityContainer.Resolve <IImportExportService>();
                importExportService.Save(list, s);
            };

            // Сохранение настроек
            _form.FormClosing += (sender, args) =>
            {
                var settings         = context.Session.SettingsService.GetSettings();
                var contractSettings = settings.ContractSettings;

                FilterDisplayHelper.UpdateColumnsSettings(contractSettings, _form.SelectGridSettings());

                context.Session.SettingsService.SetSettings(settings);
                context.Session.SettingsService.Save();
            };

            // Меню
            _form.MenuItemResolver = (entity, command) =>
            {
                var contract = _form.CurrentEntity as IContract;

                if (null == contract)
                {
                    return(false);
                }

                var contractContext = new ContractContext(context, contract);

                if (command.Equals(ExtensionCatalog.RefreshContract))
                {
                    var actionProvider = context.ExtensionManager.TryGetContractActionProvider(command);
                    return(actionProvider?.CheckCompatibility(contractContext) ?? false);
                }

                var formProvider = context.ExtensionManager.TryGetContractFormProvider(command);
                return(formProvider?.CheckCompatibility(contractContext) ?? false);
            };

            // Обработка событий.
            _form.ServiceCommand += (sender, args) =>
            {
                string command = args.Command;

                if (null == command)
                {
                    throw new InvalidOperationException("null == command");
                }

                if (command.StartsWith("CellContentClick:", StringComparison.Ordinal))
                {
                    return;
                }

                if (command.StartsWith("CellMouseDoubleClick:", StringComparison.Ordinal))
                {
                    command = ExtensionCatalog.ContractDetails;
                }

                var contract = args.Argument as IContract;

                // Кнопки
                if (null == contract)
                {
                    var formProvider = context.ExtensionManager.TryGetTopFormProvider(command);

                    formProvider?.GetForm(context).Show(_form);
                }
                else
                {
                    var contractContext = new ContractContext(context, contract);

                    if (command.Equals(ExtensionCatalog.RefreshContract))
                    {
                        var actionProvider = context.ExtensionManager.TryGetContractActionProvider(command);
                        actionProvider?.RunAction(contractContext);
                    }
                    else
                    {
                        var formProvider = context.ExtensionManager.TryGetContractFormProvider(command);
                        formProvider?.GetForm(contractContext).Show(_form);
                    }
                }
            };

            // Команда Refresh
            _form.WorkCallback = values =>
            {
                var valuesWrapper = new ContractFilterFormValuesWrapper(values);

                var contractService = context.UnityContainer.Resolve <IContractService>();

                var contracts =
                    contractService.SelectContracts(valuesWrapper.Control1FromTime, valuesWrapper.Control2ToTime);

                var gridRowContentList = new List <GridRowContent>();

                int signed   = 0;
                int unsigned = 0;

                var contractSettings = context.Session.SettingsService.GetSettings().ContractSettings;

                foreach (var contract in contracts)
                {
                    var gridRowContent = new GridRowContent(contract.Id.ToString(), contract);

                    switch (contract.State)
                    {
                    case ContractState.Created:
                        gridRowContent.BackColor          = Color.White;
                        gridRowContent.SelectionBackColor = contractSettings.SelectionColor;
                        unsigned++;
                        break;

                    case ContractState.Signed:
                    case ContractState.Completed:
                        gridRowContent.BackColor          = contractSettings.SignedColor;
                        gridRowContent.SelectionBackColor =
                            ColorUtility.CalculateSelectionColor(contractSettings.SignedColor);
                        signed++;
                        break;

                    default:
                        throw new InvalidOperationException("contract.State == " + contract.State);
                    }

                    if (0 == contract.AccessCount)
                    {
                        gridRowContent.ForeColor          = contractSettings.PublicForeColor;
                        gridRowContent.SelectionForeColor = contractSettings.PublicForeColor;
                    }

                    gridRowContentList.Add(gridRowContent);
                }

                var filterScreenContent = new FilterScreenContent();
                filterScreenContent.RowContentList.AddRange(gridRowContentList);

                var filterFormContent = new FilterFormContent(filterScreenContent);

                filterFormContent.LabelValues.Add(string.Format(CultureInfo.InvariantCulture, "SIG: {0}", signed));
                filterFormContent.LabelValues.Add(string.Format(CultureInfo.InvariantCulture, "UNSIG: {0}", unsigned));

                return(filterFormContent);
            };

            _form.Disposed += (sender, args) =>
            {
                EventBroker.ContractChanged -= EventBrokerOnContractChanged;
            };

            return(_form);
        }
Exemplo n.º 30
0
 static async Task SeedContractContext(ContractContext context, IServiceProvider services)
 {
     context.EnsureEnumeration <BillingMode>();
     await context.SaveChangesAsync();
 }