Пример #1
0
        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);
        }
Пример #2
0
        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);
            }
        }