// GET: /Company/Create
        
        public void SaveTags(Company ad)
        {
            string s = Request["tags"];
            string[] values = s.Split(',');
            Inspinia_MVC5_SeedProject.Models.Tag[] tags = new Inspinia_MVC5_SeedProject.Models.Tag[values.Length];
            CompanyTag[] qt = new CompanyTag[values.Length];
            for (int i = 0; i < values.Length; i++)
            {
                values[i] = values[i].Trim();
                string ss = values[i];
                if (ss != "")
                {
                    var data = db.Tags.FirstOrDefault(x => x.name.Equals(ss, StringComparison.OrdinalIgnoreCase));

                    tags[i] = new Inspinia_MVC5_SeedProject.Models.Tag();
                    if (data != null)
                    {
                        tags[i].Id = data.Id;
                    }
                    else
                    {
                        tags[i].name = values[i];
                        tags[i].time = DateTime.UtcNow;
                        tags[i].createdBy = User.Identity.GetUserId();
                        db.Tags.Add(tags[i]);
                    }
                }
                else
                {
                    tags[i] = null;
                }
            }
            try
            {
                db.SaveChanges();
            }
            catch (Exception e)
            {
                string sb = e.ToString();
            }
            for (int i = 0; i < values.Length; i++)
            {
                if (tags[i] != null)
                {
                    qt[i] = new CompanyTag();
                    qt[i].companyId = ad.Id;
                    qt[i].tagId = tags[i].Id;
                    db.CompanyTags.Add(qt[i]);
                }
            }
        }
        public async Task<object> UpdateTags(string s, int companyId)
        {
           var com =await db.Companies.Include("CompanyTags").FirstOrDefaultAsync(x => x.Id.Equals(companyId));
            var temp = com.CompanyTags.ToList();
            foreach (var cc in temp)
            {
                db.CompanyTags.Remove(cc);
            }
            
            await db.SaveChangesAsync();
            if(s == null)
            {
                return -1;
            }
            string[] values = s.Split(',');
            Tag[] tags = new Tag[values.Length];
            CompanyTag[] qt = new CompanyTag[values.Length];
            for (int i = 0; i < values.Length; i++)
            {
                values[i] = values[i].Trim();
                string ss = values[i];
                if (ss != "")
                {
                    var data = await db.Tags.FirstOrDefaultAsync(x => x.name.Equals(ss, StringComparison.OrdinalIgnoreCase));

                    tags[i] = new Tag();
                    if (data != null)
                    {
                        tags[i].Id = data.Id;
                    }
                    else
                    {
                        tags[i].name = values[i];
                        tags[i].time = DateTime.UtcNow;
                        tags[i].createdBy = User.Identity.GetUserId();
                        db.Tags.Add(tags[i]);
                    }
                }
                else
                {
                    tags[i] = null;
                }
            }
            try
            {
                await db.SaveChangesAsync();
            }
            catch (Exception e)
            {
                string sb = e.ToString();
            }
            for (int i = 0; i < values.Length; i++)
            {
                if (tags[i] != null)
                {
                    qt[i] = new CompanyTag();
                    qt[i].companyId = companyId;
                    qt[i].tagId = tags[i].Id;
                    db.CompanyTags.Add(qt[i]);
                }
            }
            await db.SaveChangesAsync();
            var ret = from taa in qt
                      select new
                      {
                          name = taa.Tag.name,
                      };
            return ret;
        }