コード例 #1
0
        /// <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();
        }
コード例 #2
0
        /// <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();
        }