public async Task <ActionResult <CurrencyDto> > PutCurrency(int id, CurrencyInputDto input) { var currency = await _context.Currencies.FindAsync(id); currency.Name = input.Name; currency.ForeignName = input.ForeignName; currency.IsActive = input.IsActive; currency.Symbol = input.Symbol; currency.UpdatedUserId = input.UserId; currency.UpdatedDate = DateTime.Now; if (currency.IsActive) { var currencies = await _context.Currencies.Where(x => !x.VirtualDeleted && x.Id != id).ToListAsync(); foreach (var item in currencies) { item.IsActive = false; _context.Entry(item).State = EntityState.Modified; } } _context.Entry(currency).State = EntityState.Modified; var user = await _context.Users.FirstOrDefaultAsync(x => x.Id == input.UserId); var log = new Log() { DateTime = DateTime.Now, TypeFullName = typeof(Currency).FullName, Content = "@userName@updateAction@objTitle", TypeId = currency.Id, UserId = user.Id }; _context.Logs.Add(log); try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!CurrencyExists(id)) { return(NotFound()); } else { throw; } } var result = new CurrencyDto() { Id = currency.Id, Name = currency.Name, ForeignName = currency.ForeignName, IsActive = currency.IsActive, Symbol = currency.Symbol, }; return(result); }
public async Task <ActionResult <CurrencyDto> > PostCurrency(CurrencyInputDto input) { try { var currency = new Currency() { Name = input.Name, ForeignName = input.ForeignName, IsActive = input.IsActive, Symbol = input.Symbol, CreatedDate = DateTime.Now, CreatedUserId = input.UserId }; _context.Currencies.Add(currency); await _context.SaveChangesAsync(); var user = await _context.Users.FirstOrDefaultAsync(x => x.Id == input.UserId); var log = new Log() { DateTime = DateTime.Now, TypeFullName = typeof(Currency).FullName, Content = "@userName@addAction@objTitle", TypeId = currency.Id, UserId = user.Id }; _context.Logs.Add(log); await _context.SaveChangesAsync(); var result = new CurrencyDto() { Id = currency.Id, Name = currency.Name, ForeignName = currency.ForeignName, IsActive = currency.IsActive, Symbol = currency.Symbol, }; return(result); } catch (Exception ex) { return(null); } }