Exemple #1
0
        /// <summary>
        /// Creates new bar in the database.
        /// </summary>
        /// <param name="barDTO">bar DTO model.</param>
        /// <returns>The created bar.</returns>
        public async Task <BarDTO> CreateAsync(BarDTO barDTO)
        {
            try
            {
                if (await BarExistsByName(barDTO.Name))
                {
                    var theBar = await _context.Bars
                                 .FirstOrDefaultAsync(c => c.Name.Equals(barDTO.Name));

                    if (theBar.IsDeleted == true)
                    {
                        theBar.IsDeleted = false;
                    }
                    _context.Bars.Update(theBar);
                    await _context.SaveChangesAsync();

                    return(_mapper.MapEntityToDTO(theBar));
                }
                else
                {
                    var bar = _mapper.MapDTOToEntity(barDTO);

                    _context.Bars.Add(bar);

                    await _context.SaveChangesAsync();

                    bar = await _context.Bars.FirstOrDefaultAsync(b => b.Name == barDTO.Name);

                    return(_mapper.MapEntityToDTO(bar));
                }
            }
            catch (Exception)
            {
                throw new ArgumentNullException("Fail to create bar");
            }
        }