/// <summary> /// Method for editing item in a database /// </summary> /// <param name="type">DbType of a table</param> /// <param name="element">element to edit</param> public void EditItem(DbType type, IDbElement element) { // Manually setting the properties; for some reason, batching them through CurrentValues doesn't seem to work switch (type) { case DbType.Employee: var emp = EmployeesDbSet.Find(element.ID); if (emp != null) { var e = (Employee)element; emp.FirstName = e.FirstName; emp.LastName = e.LastName; emp.City = e.City; emp.Type = e.Type; emp.TaskID = e.TaskID; CurrentContext.Entry(emp).State = EntityState.Modified; } break; case DbType.Task: var task = TasksDbSet.Find(element.ID); if (task != null) { var t = (CompanyTask)element; task.Name = t.Name; task.Description = t.Description; task.Deadline = t.Deadline; task.Finished = t.Finished; task.ProductID = t.ProductID; CurrentContext.Entry(task).State = EntityState.Modified; } break; case DbType.Product: var product = ProductsDbSet.Find(element.ID); if (product != null) { var p = (Product)element; product.Name = p.Name; product.Description = p.Description; product.TargetID = p.TargetID; CurrentContext.Entry(product).State = EntityState.Modified; } break; case DbType.Target: var target = TargetsDbSet.Find(element.ID); if (target != null) { target.Name = ((ProductTarget)element).Name; CurrentContext.Entry(target).State = EntityState.Modified; } break; } CurrentContext.SaveChanges(); }
/// <summary> /// Method for adding new item to a database /// </summary> /// <param name="type">DbType of a table</param> /// <param name="element">element to add</param> public void AddItem(DbType type, IDbElement element) { switch (type) { case DbType.Employee: EmployeesDbSet.Add((Employee)element); break; case DbType.Task: TasksDbSet.Add((CompanyTask)element); break; case DbType.Product: ProductsDbSet.Add((Product)element); break; case DbType.Target: TargetsDbSet.Add((ProductTarget)element); break; } CurrentContext.SaveChanges(); }