public async Task <bool> ChangeStatusScript(ActionStatusParameter model)
        {
            var championScripts = await _firebaseService.GetChampionScript() ?? new List <ChampionScript>();

            var champion = championScripts.FirstOrDefault(a => a.Id == model.IdScript);

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

            champion.Status = champion.Status == "Outdated" ? "Updated" : "Outdated";

            var index = championScripts.IndexOf(champion);

            championScripts[index] = champion;

            _firebaseService.PutChampionScript(championScripts);

            return(true);
        }
Exemple #2
0
        public async Task <ResponseServerService> RatingScript(ActionRatingParameter model, User user)
        {
            var users           = _firebaseService.GetUsers();
            var ratings         = _firebaseService.GetRatings();
            var championScripts = _firebaseService.GetChampionScript();

            await Task.WhenAll(users, ratings, championScripts);

            var listUsers           = users.Result ?? new List <User>();
            var listRatings         = ratings.Result ?? new List <ScriptRatingDetail>();
            var listChampionScripts = championScripts.Result ?? new List <ChampionScript>();

            var championScriptFind = listChampionScripts.FirstOrDefault(a => a.Id == model.IdScript);

            if (championScriptFind == null)
            {
                return(_responseServerService.ResponseError());
            }

            var userFind = listUsers.FirstOrDefault(a => a.Email == user.Email);

            if (userFind == null)
            {
                return(_responseServerService.ResponseError());
            }

            var ratingUser = listRatings.FirstOrDefault(a => a.IdUser == userFind.Id && a.IdScript == championScriptFind.Id);

            if (ratingUser == null)
            {
                ratingUser = new ScriptRatingDetail()
                {
                    CreateDate = DateTime.Now,
                    Id         = listRatings.LastOrDefault()?.Id + 1 ?? 1,
                    IdScript   = championScriptFind.Id,
                    IdUser     = userFind.Id,
                    Point      = model.Point
                };

                listRatings.Add(ratingUser);
            }
            else
            {
                ratingUser.CreateDate = DateTime.Now;
                ratingUser.IdScript   = championScriptFind.Id;
                ratingUser.IdUser     = userFind.Id;
                ratingUser.Point      = model.Point;

                var indexof = listRatings.IndexOf(ratingUser);

                listRatings[indexof] = ratingUser;
            }

            _firebaseService.PutRatings(listRatings);

            var check = UpdateRating(listRatings, model.IdScript, listChampionScripts);

            if (check)
            {
                return(_responseServerService.ResponseSuccess("Rating Success !!!"));
            }

            return(_responseServerService.ResponseError());
        }