Example #1
0
        public async Task <IActionResult> Clans(Clan clan)
        {
            //json handler and page model
            ClashJson  clashJson = new ClashJson(_clientFactory);
            ClansModel model     = new ClansModel(context);

            Clan returnClan = new Clan();


            if (clan.Tag != null)
            {
                if (clan.Tag.Length > 1)
                {
                    if (!clan.Tag.StartsWith('#'))
                    {
                        clan.Tag = "#" + clan.Tag;
                    }
                }
            }

            //tries to get the clan data, if it fails or remains null it will be tagged "invalid"
            try
            {
                returnClan = await clashJson.GetClanData(clan.Tag);
            }
            catch
            {
                returnClan     = new Clan();
                returnClan.Tag = "invalid";
            }
            if (returnClan == null)
            {
                returnClan     = new Clan();
                returnClan.Tag = "invalid";
            }

            if (returnClan.Tag != "invalid")
            {
                context.Clans.Add(returnClan);
                context.SaveChanges();
            }
            //loads the searched clan into the model
            model.SearchedClan = returnClan;


            return(View(model));
        }