/// <summary>
 ///     Adding or Updating Sport Type in a database
 /// </summary>
 /// <param name="sportType">Business Object Sport Type</param>
 /// <returns>True if succeeded and false otherwise</returns>
 public async Task <bool> SaveSportType(DtoSportType sportType)
 {
     try
     {
         using (var data = Context)
         {
             var st =
                 await
                     (from item in data.SportType where sportType.Id == item.id select item).FirstOrDefaultAsync();
             // Updating Sport Type
             if (st != null)
             {
                 st.name        = sportType.Name;
                 st.description = sportType.Description;
             }
             // Adding new Sport Type
             else
             {
                 if (await(from item in data.SportType where sportType.Name == item.name select item).AnyAsync())
                 {
                     return(false);
                 }
                 data.SportType.Add(SportTypeConverter.DtoToDataAccess(sportType));
             }
             await data.SaveChangesAsync();
         }
         return(true);
     }
     catch (Exception)
     {
         return(false);
     }
 }
        public async Task <ObservableCollection <SportType> > GetSportTypes()
        {
            var ret = new ObservableCollection <SportType>();

            foreach (var s in await Post <int, ObservableCollection <DtoSportType> >("GetSports", -1))
            {
                ret.Add(SportTypeConverter.DtoToViewModel(s));
            }
            return(ret);
        }
        /// <summary>
        ///     Method returns all Sport Types From Database
        /// </summary>
        /// <returns>Collection of Sport Types</returns>
        public async Task <ObservableCollection <DtoSportType> > GetAllSportTypes()
        {
            var ret = new ObservableCollection <DtoSportType>();

            using (var data = Context)
                foreach (var item in await(from item in data.SportType select item).ToListAsync())
                {
                    ret.Add(SportTypeConverter.DataAccsessToDto(item));
                }
            return(ret);
        }
        public async Task <bool> DeleteSportTypeAsync(string id, CancellationToken ct = default(CancellationToken))
        {
            SportTypeViewModel sportTypeToDelete = SportTypeConverter.Convert(await this._sportTypeRepository.GetByIdAsync(id, ct));

            if (sportTypeToDelete == null)
            {
                return(false);
            }

            sportTypeToDelete.Active = false;
            return(await UpdateSportTypeAsync(sportTypeToDelete, ct));
        }
 /// <summary>
 ///     Returns SportType with specific ID
 /// </summary>
 /// <param name="sportTypeId">SportType ID</param>
 /// <returns>SportType Business Object</returns>
 public async Task <DtoSportType> GetSportType(int sportTypeId)
 {
     try
     {
         using (var data = Context)
             return
                 (SportTypeConverter.DataAccsessToDto(
                      await
                          (from item in data.SportType where item.id == sportTypeId select item)
                      .FirstOrDefaultAsync()));
     }
     catch (Exception)
     {
         return(null);
     }
 }
 public async Task <bool> SaveSportType(SportType st)
 {
     return(await Post <DtoSportType, bool>("SaveSportType", SportTypeConverter.ViewModelToDto(st)));
 }
 public async Task <SportType> GetSportType(int id)
 {
     return(SportTypeConverter.DtoToViewModel(await Post <int, DtoSportType>("GetSportType", id)));
 }
        public async Task <List <SportTypeViewModel> > GetAllSportTypesAsync(CancellationToken ct = default(CancellationToken))
        {
            List <SportTypeViewModel> sportTypes = SportTypeConverter.ConvertList(await this._sportTypeRepository.GetAllAsync(ct));

            return(sportTypes);
        }
        public async Task <SportTypeViewModel> GetSportTypeByIdAsync(string id, CancellationToken ct = default(CancellationToken))
        {
            SportTypeViewModel sportType = SportTypeConverter.Convert(await this._sportTypeRepository.GetByIdAsync(id, ct));

            return(sportType);
        }