/// <summary>
        /// </summary>
        /// <param name="organizationFromModel"></param>
        public async Task CreateContractOrganization(ContractOrganization organizationFromModel)
        {
            Guard.Against.Null(organizationFromModel, nameof(organizationFromModel));
            Guard.Against.NullOrWhiteSpace(organizationFromModel.CodOrg, nameof(organizationFromModel.CodOrg));
            Guard.Against.Zero(organizationFromModel.ContractNumber, nameof(organizationFromModel.ContractNumber));

            //GET ALL DATA --PLEASE CHANGE IT LATER
            var allData = await _repositoryInstance.GetAllAsync();

            var match = allData.FirstOrDefault(x => x.OrgCode == organizationFromModel.CodOrg);

            if (match == null)
            {
                var org = new Organization(string.Empty, organizationFromModel.Description, organizationFromModel.CodOrg);
                _adapter.Adapt(organizationFromModel, org);

                _repositoryInstance.Add(org);

                organizationFromModel.Id = org.Id;
            }
            else
            {
                throw new InvalidOperationException(
                          $"Can not save Organization {organizationFromModel.CodOrg} already exist.");
            }
        }
Ejemplo n.º 2
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.");
            }
        }