public void EditOrganizationInfo(OrganizationInfoViewModel model)
        {
            var organization = _applicationDbContext.Organizations.SingleOrDefault(p => p.Id.ToString() == model.OrganizationId);

            if (organization == null)
            {
                throw new Exception($"Организации с id {model.OrganizationId} в базе нет");
            }

            var organizationType = _applicationDbContext.OrganizationTypes
                                   .SingleOrDefault(p => p.Name == model.OrganizationType);

            if (organizationType == null)
            {
                OrganizationType orgType = new OrganizationType()
                {
                    Id   = Guid.NewGuid(),
                    Name = model.OrganizationType
                };
                _applicationDbContext.OrganizationTypes.Add(orgType);
                _applicationDbContext.SaveChanges();
                organizationType = orgType;
            }

            organization.FullName             = model.FullName;
            organization.IdentificationNumber = model.IdentificationNumber;
            organization.OrganizationTypeId   = organizationType.Id;
            organization.Address  = model.Address;
            organization.Email    = model.Email;
            organization.Contacts = model.Contacts;
            organization.Site     = model.Site;
            _applicationDbContext.SaveChanges();

            if (model.UploadedFiles.Count != 0)
            {
                foreach (HttpPostedFileBase i in model.UploadedFiles)
                {
                    OrganizationFile file     = new OrganizationFile();
                    byte[]           fileData = null;

                    using (var binaryReader = new BinaryReader(i.InputStream))
                    {
                        fileData = binaryReader.ReadBytes(i.ContentLength);
                    }

                    file.OrganizationId = organization.Id;
                    file.FileName       = i.FileName;
                    file.Extension      = i.ContentType;
                    file.Content        = fileData;
                    file.CreatedAt      = DateTime.Now;
                    _applicationDbContext.OrganizationFiles.Add(file);
                    _applicationDbContext.SaveChanges();
                }
            }
        }
예제 #2
0
        static void Main(string[] args)
        {
            Db db = new Db();

            int cnt_organizations = 1000000;
            int cnt_items         = 1;

            int next_step = 1;

            for (int j = 1; j <= cnt_organizations; j++)
            {
                Organization org = new Organization();
                org.Name     = "Test Organization " + j;
                org.Location = "test Location " + j;
                org.Profile  = "Test Profile " + j;

                for (int i = 0; i < cnt_items; i++)
                {
                    PhoneNumber phone = new PhoneNumber();
                    phone.Name           = "Test Phone " + i + " " + j;
                    phone.PhoneNumberstr = "+712345";
                    org.PhoneNumbersToAdd.Add(phone);
                }

                for (int i = 0; i < cnt_items; i++)
                {
                    AdditionalInfo info = new AdditionalInfo();
                    info.InfoData = "Test data " + i + " " + j;
                    info.InfoType = "Test Type " + i + " " + j;
                    org.AdditionalInfosToAdd.Add(info);
                }

                for (int i = 0; i < cnt_items; i++)
                {
                    OrganizationFile file = new OrganizationFile();
                    file.Name = "test file name " + i + " " + j;
                    file.Path = "test file path " + i + " " + j;
                    org.OrganizationFilesToAdd.Add(file);
                }

                db.AddOrganization(org);
                if (next_step <= j * 100 / cnt_organizations)
                {
                    Console.WriteLine(next_step + "%  DONE");
                    next_step += 1;
                }
            }
        }
예제 #3
0
        public void AdaptFile(OrganizationFile fromValue, FileDataContract toValue)
        {
            Guard.Against.Null(fromValue, nameof(OrganizationFile));
            Guard.Against.Null(toValue, nameof(FileDataContract));

            toValue.Id                 = fromValue.Id;
            toValue.AllDataInFile      = fromValue.AllDataInFile;
            toValue.FileFormat         = fromValue.FileFormat;
            toValue.FileLocationOrigin = fromValue.FileLocationOrigin;
            toValue.FileMigrated       = fromValue.FileMigrated.ToString();
            toValue.FileSize           = fromValue.FileSize;
            toValue.LocationToCopy     = fromValue.LocationToCopy;
            toValue.OrgCode            = fromValue.OrgCode;
            toValue.Status             = fromValue.Status.ToString();
            toValue.FileDescription    = fromValue.FileDescription;
            toValue.FileMigratedOn     = fromValue.FileMigratedOn;
        }
예제 #4
0
        public List <Organization> AddOrganizations(int cnt_organizations, int cnt_items, Db db)
        {
            List <Organization> orgs = new List <Organization>();

            for (int j = 1; j <= cnt_organizations; j++)
            {
                Organization org = new Organization();
                org.Name     = "Test Organization " + j;
                org.Location = "test Location " + j;
                org.Profile  = "Test Profile " + j;

                for (int i = 0; i < cnt_items; i++)
                {
                    PhoneNumber phone = new PhoneNumber();
                    phone.Name           = "Test Phone " + i + " " + j;
                    phone.PhoneNumberstr = "+712345" + i + " " + j;
                    org.PhoneNumbersToAdd.Add(phone);
                }

                for (int i = 0; i < cnt_items; i++)
                {
                    AdditionalInfo info = new AdditionalInfo();
                    info.InfoData = "Test data " + i + " " + j;
                    info.InfoType = "Test Type " + i + " " + j;
                    org.AdditionalInfosToAdd.Add(info);
                }

                for (int i = 0; i < cnt_items; i++)
                {
                    OrganizationFile file = new OrganizationFile();
                    file.Name = "test file name " + i + " " + j;
                    file.Path = "test file path " + i + " " + j;
                    org.OrganizationFilesToAdd.Add(file);
                }

                org.Id = db.AddOrganization(org);
                orgs.Add(org);
            }

            return(orgs);
        }
예제 #5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="fileContract"></param>
        /// <returns></returns>
        public async Task CreateOrganizationFile(FileDataContract fileContract)
        {
            Guard.Against.Null(fileContract, nameof(fileContract));

            //retrieve OrganizationConfigurations based on orgCode
            //TODO change to verify type of debt
            var config = await _configRepositoryInstance.GetEqualField("OrgCode", fileContract.OrgCode);

            var configResult = config.FirstOrDefault();

            if (config == null)
            {
                throw new Exception("configuration of organization was not found.");
            }

            //Verify if exists document with the same name
            var allFilesDb = _repositoryInstance.GetEqualField("OrgCode", fileContract.OrgCode);
            var match      = allFilesDb.Result.FirstOrDefault(x => x.FileDescription.Trim().Equals(fileContract.FileDescription));


            if (match == null)
            {
                Enum.TryParse <StatusType>(fileContract.Status, true, out var status);
                Boolean.TryParse(fileContract.FileMigrated, out var fileMigrated);

                var org = new OrganizationFile(string.Empty, fileContract.FileDescription,
                                               fileContract.FileSize, fileContract.FileFormat, fileContract.FileLocationOrigin,
                                               fileContract.LocationToCopy, status, fileMigrated,
                                               null, configResult, fileContract.AllDataInFile);

                _repositoryInstance.Add(org);

                fileContract.Id = org.Id;
            }
            else
            {
                throw new InvalidOperationException(
                          $"Can not save File '{match.FileDescription + " and " + match.OrgCode}' already exist.");
            }
        }
예제 #6
0
        public void ComplexTestDatabase()
        {
            Db            db           = new Db();
            SqlConnection conn         = db.GetConnection();
            int           orgsBefore   = GetRowsNumber("Organization", conn);
            int           phonesBefore = GetRowsNumber("PhoneNumber", conn);
            int           infosBefore  = GetRowsNumber("AdditionalInfo", conn);
            int           filessBefore = GetRowsNumber("OrganizationFile", conn);//Смотрим сколько было записей

            int cnt_orgs             = 10;
            int cnt_items            = 5;
            List <Organization> orgs = AddOrganizations(cnt_orgs, cnt_items, db);

            int orgsAfter   = GetRowsNumber("Organization", conn);
            int phonesAfter = GetRowsNumber("PhoneNumber", conn);
            int infosAfter  = GetRowsNumber("AdditionalInfo", conn);
            int filessAfter = GetRowsNumber("OrganizationFile", conn);

            Assert.Equal(orgsAfter, orgsBefore + cnt_orgs);
            Assert.Equal(phonesAfter, phonesBefore + cnt_orgs * cnt_items);
            Assert.Equal(infosAfter, infosBefore + cnt_orgs * cnt_items);
            Assert.Equal(filessAfter, filessBefore + cnt_orgs * cnt_items);//Проверяем всё ли добавилось



            foreach (Organization org in orgs)//Проверяем, что добавилось то, что мы хотели добавить
            {
                Organization tmp = db.OrganizationRepository.GetById(org.Id);

                db.LoadOrganizationData(tmp);
                Assert.Equal(tmp.Id, org.Id);
                Assert.Equal(tmp.Name, org.Name);
                Assert.Equal(tmp.Location, org.Location);
                Assert.Equal(tmp.Profile, org.Profile);

                Assert.Equal(tmp.PhoneNumbers.Count, org.PhoneNumbersToAdd.Count);
                Assert.Equal(tmp.AdditionalInfos.Count, org.AdditionalInfosToAdd.Count);
                Assert.Equal(tmp.OrganizationFiles.Count, org.OrganizationFilesToAdd.Count);

                for (int i = 0; i < tmp.PhoneNumbers.Count; i++)
                {
                    PhoneNumber phone1 = tmp.PhoneNumbers[i];
                    PhoneNumber phone2 = org.PhoneNumbersToAdd[i];
                    Assert.Equal(phone1.Name, phone2.Name);
                    Assert.Equal(phone1.PhoneNumberstr, phone2.PhoneNumberstr);
                    Assert.Equal(phone1.OrganizaionId, phone2.OrganizaionId);
                }

                for (int i = 0; i < tmp.AdditionalInfos.Count; i++)
                {
                    AdditionalInfo info1 = tmp.AdditionalInfos[i];
                    AdditionalInfo info2 = org.AdditionalInfosToAdd[i];
                    Assert.Equal(info1.InfoData, info2.InfoData);
                    Assert.Equal(info1.InfoType, info2.InfoType);
                    Assert.Equal(info1.OrganizaionId, info2.OrganizaionId);
                }

                for (int i = 0; i < tmp.OrganizationFiles.Count; i++)
                {
                    OrganizationFile file1 = tmp.OrganizationFiles[i];
                    OrganizationFile file2 = org.OrganizationFilesToAdd[i];
                    Assert.Equal(file1.Name, file2.Name);
                    Assert.Equal(file1.Path, file2.Path);
                    Assert.Equal(file1.OrganizaionId, file2.OrganizaionId);
                }
            }



            foreach (Organization org in orgs)
            {
                db.RemoveOrganization(org);
            }


            orgsAfter   = GetRowsNumber("Organization", conn);
            phonesAfter = GetRowsNumber("PhoneNumber", conn);
            infosAfter  = GetRowsNumber("AdditionalInfo", conn);
            filessAfter = GetRowsNumber("OrganizationFile", conn);


            Assert.Equal(orgsAfter, orgsBefore);
            Assert.Equal(phonesAfter, phonesBefore);
            Assert.Equal(infosAfter, infosBefore);
            Assert.Equal(filessAfter, filessBefore);//Проверяем всё ли удалилось
        }