/// <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."); } }
/// <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."); } }