public CSVResult UploadCSV(List <CSVFormDto> data) { var result = new CSVResult(); var currencyCodes = data.Select(element => element.Code).ToList(); var currencies = _dbContext.Currencies.Where(entity => currencyCodes.Contains(entity.Code)).ToList(); if (data.Count <= 0) { result.ErrorValidation(); } var models = new List <IBCurrencyModel>(); foreach (var datum in data) { var currency = currencies.FirstOrDefault(element => element.Code == datum.Code); if (currency != null) { if (datum.GetYear() <= 0) { datum.ErrorMessage += "tahun tidak valid\n"; result.ErrorValidation(); } if (datum.GetMonth() <= 0) { datum.ErrorMessage += "bulan tidak valid\n"; result.ErrorValidation(); } if (datum.GetRate() <= 0) { datum.ErrorMessage += "rate harus lebih besar dari 0\n"; result.ErrorValidation(); } } else { datum.ErrorMessage += "mata uang tidak valid atau belum terdaftar\n"; result.ErrorValidation(); } } if (!result.IsAnyValidationError) { foreach (var datum in data) { var currency = currencies.FirstOrDefault(element => element.Code == datum.Code); var model = new IBCurrencyModel(currency.Id, datum.GetYear(), datum.GetMonth(), datum.GetRate()); model.FlagForUpdate(_identityService.Username, UserAgent); _dbContext.IBCurrencies.Add(model); } _dbContext.SaveChanges(); } return(result); }
public int Create(FormDto form) { if (_dbContext.IBCurrencies.Any(entity => entity.CurrencyId == form.CurrencyId && entity.Year == form.Year && entity.Month == form.Month)) { var validationResult = new List <ValidationResult> { new ValidationResult("Sudah Mata Uang dengan Tahun dan Bulan yang sama", new List <string>() { "Duplicate" }) }; var validationContext = new ValidationContext(form, _serviceProvider, null); throw new ServiceValidationException(validationContext, validationResult); } var model = new IBCurrencyModel(form.CurrencyId, form.Year, form.Month, form.Rate); model.FlagForUpdate(_identityService.Username, UserAgent); _dbContext.IBCurrencies.Add(model); return(_dbContext.SaveChanges()); }