public async Task <ActionResult <CompanyTag> > PostCompanyTag(CompanyTag companyTag) { _context.CompanyTags.Add(companyTag); await _context.SaveChangesAsync(); return(CreatedAtAction("GetCompanyTag", new { id = companyTag.CompanyTagID }, companyTag)); }
public async Task <IActionResult> PutCompanyTag(long id, CompanyTag companyTag) { if (id != companyTag.CompanyTagID) { return(BadRequest()); } _context.Entry(companyTag).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!CompanyTagExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
// 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 ActionResult AddCompanyTag(CompanyTagsVM model) { var user = User as MPrincipal; var login = user.UserDetails.Login; ViewBag.UserName = login; ViewBag.UserRole = 4; using (ApplicationDbContext db = new ApplicationDbContext()) { var company = db.Companies.SingleOrDefault(x => x.Login == login); CompanyTag cTag = new CompanyTag() { CompanyId = company.Id, TagId = Convert.ToInt32(model.SelectedTagId) }; db.CompanyTags.Add(cTag); db.SaveChanges(); } return(RedirectToAction("CompanyTagsList")); }
public async Task Update(MTask entityToUpdate) { var task = await FindById(entityToUpdate.TaskId); if (task is null) { throw new ArgumentException("Task with the specified ID not found!!!"); } _context.Tasks.Attach(task); foreach (var file in task.AttachedFiles) { // если в списке отсутствует прикрепленный файл то удаляем его из списка прикрепленных if (entityToUpdate.AttachedFiles.FirstOrDefault(f => f.AttachedFileId == file.AttachedFileId) is null) { var attachedFile = await _context.AttachedFiles.FirstOrDefaultAsync(f => f.AttachedFileId == file.AttachedFileId); _context.AttachedFiles.Remove(attachedFile); var taskAttachedFile = await _context.TaskAttachedFiles.FirstOrDefaultAsync(f => f.AttachedFileId == file.AttachedFileId); _context.TaskAttachedFiles.Remove(taskAttachedFile); } } foreach (var file in entityToUpdate.AttachedFiles) { if (file.AttachedFileId <= 0) { file.Task = task; task.AttachedFiles.Add(file); } } task.Name = entityToUpdate.Name; task.Body = entityToUpdate.Body; task.Deadline = entityToUpdate.Deadline; task.IsImportant = entityToUpdate.IsImportant; task.CoExecutors.Clear(); task.CoExecutors = entityToUpdate.CoExecutors; task.Observers.Clear(); task.Observers = entityToUpdate.Observers; task.ResponsiblesForExecution.Clear(); task.ResponsiblesForExecution = entityToUpdate.ResponsiblesForExecution; if (entityToUpdate.TaskTags != null) { foreach (var taskTag in task.TaskTags) { // Находим тег в БД var tag = await _context.Tags.FirstOrDefaultAsync(t => t.TagId == taskTag.TagId); int taskCount = _context.TaskTags.Where(t => t.TagId == taskTag.TagId).Count(); int companyCount = _context.CompanyTags.Where(t => t.TagId == taskTag.TagId).Count(); // Если у тега есть только одна связь с текущей задачей // и одна связь с компанией // и при обновлении этот тег не используется // то удаляем этот тег if (taskCount <= 1 && companyCount <= 1 && taskTag.TaskId == entityToUpdate.TaskId && entityToUpdate.TaskTags.FirstOrDefault(t => t.Tag.Name.Equals(tag.Name)) is null) { TaskTag searchTaskTag = await _context.TaskTags.FirstOrDefaultAsync(t => t.Id == taskTag.Id); if (searchTaskTag != null) { _context.TaskTags.Remove(searchTaskTag); } CompanyTag companyTag = await _context.CompanyTags.FirstOrDefaultAsync(t => t.TagId == taskTag.TagId); _context.Tags.Remove(tag); } else { _context.TaskTags.Remove(taskTag); } } await _context.SaveChangesAsync(); task.TaskTags.Clear(); for (int i = 0; i < entityToUpdate.TaskTags.Count; i++) { // Ищем тег var tag = await _context.Tags.FirstOrDefaultAsync(t => t.Name.ToLower().Equals(entityToUpdate.TaskTags[i].Tag.Name.ToLower())); // Если тег найден if (tag != null) { // Связываем тег с задачей task.TaskTags.Add(new TaskTag { TagId = tag.TagId, TaskId = task.TaskId }); } else { task.TaskTags.Add(entityToUpdate.TaskTags[i]); } var companyTag = await _context.CompanyTags.FirstOrDefaultAsync(ct => ct.CompanyId == task.Company.CompanyId && ct.TagId == tag.TagId); // Если указанный тег не связан с текущей компанией то тогда связываем их if (companyTag is null) { await _context.CompanyTags.AddAsync(new CompanyTag { CompanyId = task.Company.CompanyId, TagId = tag.TagId }); } } } await _context.SaveChangesAsync(); }
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 || s == "" || s == "undefined") { return(-1); } string[] values = s.Split(','); Models.Tag[] tags = new 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 = await db.Tags.FirstOrDefaultAsync(x => x.name.Equals(ss, StringComparison.OrdinalIgnoreCase)); tags[i] = new 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 { 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 { id = taa.tagId, name = taa.Tag.name, }; return(ret); }