コード例 #1
0
        public IActionResult Post([FromBody] ComputerEmployee computerEmployee)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _context.ComputerEmployee.Add(computerEmployee);

            try
            {
                _context.SaveChanges();
            }
            catch (DbUpdateException)
            {
                if (ComputerEmployeeExists(computerEmployee.ComputerEmployeeId))
                {
                    return(new StatusCodeResult(StatusCodes.Status409Conflict));
                }
                else
                {
                    throw;
                }
            }
            return(CreatedAtRoute("GetSingleComputerEmployee", new { id = computerEmployee.ComputerEmployeeId }, computerEmployee));
        }
コード例 #2
0
        public IActionResult Put(int id, [FromBody] ComputerEmployee computerEmployee)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _context.ComputerEmployee.Update(computerEmployee);

            try
            {
                _context.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ComputerEmployeeExists(computerEmployee.ComputerEmployeeId))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }
            return(CreatedAtRoute("GetSingleComputerEmployee", new { id = computerEmployee.ComputerEmployeeId }, computerEmployee));
        }
コード例 #3
0
        public async Task <IActionResult> PutEmployeeComputer([FromRoute] int id, [FromBody] ComputerEmployee employeeComputer)
        {
            using (SqlConnection conn = Connection)
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = @"UPDATE ComputerEmployee
                                        SET AssignDate = @assignDate,
                                            EmployeeId = @employeeId,
                                            ComputerId = @computerId
                                        WHERE Id = @id";
                    cmd.Parameters.Add(new SqlParameter("@assignDate", employeeComputer.AssignDate));
                    cmd.Parameters.Add(new SqlParameter("@employeeId", employeeComputer.EmployeeId));
                    cmd.Parameters.Add(new SqlParameter("@computerId", employeeComputer.ComputerId));
                    cmd.Parameters.Add(new SqlParameter("@id", id));

                    int rowsAffected = cmd.ExecuteNonQuery();
                    if (rowsAffected > 0)
                    {
                        return(NoContent());
                    }
                    throw new Exception("No rows affected");
                }
            }
        }
コード例 #4
0
        public IActionResult Delete(int id)
        {
            ComputerEmployee computerEmployee = _context.ComputerEmployee.Single(t => t.ComputerEmployeeId == id);

            if (computerEmployee == null)
            {
                return(NotFound());
            }
            _context.ComputerEmployee.Remove(computerEmployee);
            _context.SaveChanges();
            return(Ok(computerEmployee));
        }
コード例 #5
0
        public async Task <IActionResult> GetEmployeeComputerById([FromRoute] int id)
        {
            using (SqlConnection conn = Connection)
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = @"SELECT ce.Id, ce.AssignDate, ce.UnassignDate, ce.EmployeeId, ce.ComputerId, 
                                        e.FirstName, e.LastName, e.DepartmentId, e.IsSupervisor,
                                        c.PurchaseDate, c.DecomissionDate, c.Make, c.Manufacturer
                                        FROM ComputerEmployee ce
                                        LEFT JOIN Employee e ON ce.EmployeeId = e.Id
                                        LEFT JOIN Computer c ON ce.ComputerId = c.Id
                                        WHERE ce.Id = @id";
                    cmd.Parameters.Add(new SqlParameter("@id", id));
                    SqlDataReader    reader           = cmd.ExecuteReader();
                    ComputerEmployee employeeComputer = null;

                    while (reader.Read())
                    {
                        employeeComputer = new ComputerEmployee
                        {
                            Id           = reader.GetInt32(reader.GetOrdinal("Id")),
                            AssignDate   = reader.GetDateTime(reader.GetOrdinal("AssignDate")),
                            UnassignDate = reader.IsDBNull(reader.GetOrdinal("UnassignDate")) ? (DateTime?)null : (DateTime?)reader.GetDateTime(reader.GetOrdinal("UnassignDate")),
                            EmployeeId   = reader.GetInt32(reader.GetOrdinal("EmployeeId")),
                            Employee     = new Employee
                            {
                                Id           = reader.GetInt32(reader.GetOrdinal("EmployeeId")),
                                FirstName    = reader.GetString(reader.GetOrdinal("FirstName")),
                                LastName     = reader.GetString(reader.GetOrdinal("LastName")),
                                DepartmentId = reader.GetInt32(reader.GetOrdinal("DepartmentId")),
                                IsSupervisor = reader.GetBoolean(reader.GetOrdinal("IsSupervisor")),
                            },
                            ComputerId = reader.GetInt32(reader.GetOrdinal("ComputerId")),
                            Computer   = new Computer
                            {
                                Id              = reader.GetInt32(reader.GetOrdinal("ComputerId")),
                                PurchaseDate    = reader.GetDateTime(reader.GetOrdinal("PurchaseDate")),
                                DecomissionDate = reader.GetDateTime(reader.GetOrdinal("DecomissionDate")),
                                Make            = reader.GetString(reader.GetOrdinal("Make")),
                                Manufacturer    = reader.GetString(reader.GetOrdinal("Manufacturer"))
                            }
                        };
                    }
                    reader.Close();
                    return(Ok(employeeComputer));
                }
            }
        }
コード例 #6
0
        public async Task <IActionResult> PostEmployeeComputer([FromBody] ComputerEmployee employeeComputer)
        {
            using (SqlConnection conn = Connection)
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = @"INSERT INTO ComputerEmployee (AssignDate, EmployeeId, ComputerId)
                                        OUTPUT INSERTED.Id
                                        VALUES (@assignDate, @employeeId, @computerId)";
                    cmd.Parameters.Add(new SqlParameter("@assignDate", employeeComputer.AssignDate));
                    cmd.Parameters.Add(new SqlParameter("@employeeId", employeeComputer.EmployeeId));
                    cmd.Parameters.Add(new SqlParameter("@computerId", employeeComputer.ComputerId));

                    int newId = (int)cmd.ExecuteScalar();
                    employeeComputer.Id = newId;
                    return(CreatedAtRoute("GetEmployeeComputerById", new { id = newId }, employeeComputer));
                }
            }
        }
コード例 #7
0
        public IActionResult Get(int id)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            try
            {
                ComputerEmployee computerEmployee = _context.ComputerEmployee.Single(t => t.ComputerEmployeeId == id);

                if (computerEmployee == null)
                {
                    return(NotFound());
                }

                return(Ok(computerEmployee));
            }
            catch (System.InvalidOperationException ex)
            {
                return(NotFound());
            }
        }
コード例 #8
0
        private ComputerEmployee GetComputerEmployeeByEmployeeId(int id)
        {
            {
                using (SqlConnection conn = Connection)
                {
                    conn.Open();
                    using (SqlCommand cmd = conn.CreateCommand())
                    {
                        cmd.CommandText = @"SELECT ce.Id, ce.ComputerId, ce.EmployeeId, ce.AssignDate
                                        
                                        FROM ComputerEmployee ce 
                                        WHERE ce.EmployeeId = @id AND ce.UnassignDate IS NULL
                                        ";
                        cmd.Parameters.Add(new SqlParameter("@id", id));
                        var reader = cmd.ExecuteReader();

                        ComputerEmployee computerEmployee = new ComputerEmployee();
                        if (reader.Read())
                        {
                            if (!reader.IsDBNull(reader.GetOrdinal("EmployeeId")))
                            {
                                computerEmployee = new ComputerEmployee()
                                {
                                    Id         = reader.GetInt32(reader.GetOrdinal("Id")),
                                    EmployeeId = reader.GetInt32(reader.GetOrdinal("EmployeeId")),
                                    ComputerId = reader.GetInt32(reader.GetOrdinal("ComputerId")),
                                    AssignDate = reader.GetDateTime(reader.GetOrdinal("AssignDate"))
                                };
                            }
                        }
                        reader.Close();

                        return(computerEmployee);
                    }
                }
            }
        }
コード例 #9
0
        public static void Initialize(IServiceProvider serviceProvider)
        {
            using (var context = new BangazonContext(serviceProvider.GetRequiredService <DbContextOptions <BangazonContext> >()))
            {
                if (context.Customer.Any())
                {
                    return;
                }

                //seeding CUSTOMERS
                var customers = new Customer[]
                {
                    new Customer {
                        FirstName = "Jelly",
                        LastName  = "Otter",
                        Active    = 0
                    },
                    new Customer {
                        FirstName = "Nigel",
                        LastName  = "Thornberry",
                        Active    = 1
                    },
                    new Customer {
                        FirstName = "Frank",
                        LastName  = "Underwood",
                        Active    = 1
                    },
                };

                foreach (Customer i in customers)
                {
                    context.Customer.Add(i);
                }
                context.SaveChanges();

                //seeding COMPUTERS
                var computers = new Computer[]
                {
                    new Computer {
                    },
                    new Computer {
                    },
                    new Computer {
                    }
                };

                foreach (Computer i in computers)
                {
                    context.Computer.Add(i);
                }
                context.SaveChanges();

                //seeding DEPARTMENTS
                var departments = new Department[]
                {
                    new Department {
                        Name   = "Marketing",
                        Budget = 123456
                    },
                    new Department {
                        Name   = "Accounting",
                        Budget = 234567
                    }
                };

                foreach (Department i in departments)
                {
                    context.Department.Add(i);
                }
                context.SaveChanges();

                //seeding EMPLOYEES
                var employees = new Employee[]
                {
                    new Employee {
                        Name = "Jon Snow"
                    },
                    new Employee {
                        Name = "Stephen Spielburg"
                    },
                    new Employee {
                        Name = "Megan Berry"
                    }
                };

                foreach (Employee i in employees)
                {
                    context.Employee.Add(i);
                }
                context.SaveChanges();

                //seeding PAYMENT TYPES
                var paymentTypes = new PaymentType[]
                {
                    new PaymentType {
                        Type          = "Visa",
                        AccountNumber = "12345667890",
                        CustomerId    = customers.Single(firstname => firstname.FirstName == "Jelly").CustomerId,
                    },
                    new PaymentType {
                        Type          = "MasterCard",
                        AccountNumber = "2345678901",
                        CustomerId    = customers.Single(firstname => firstname.FirstName == "Nigel").CustomerId,
                    },
                    new PaymentType {
                        Type          = "AmericanExpress",
                        AccountNumber = "3456789012",
                        CustomerId    = customers.Single(firstname => firstname.FirstName == "Frank").CustomerId,
                    }
                };

                foreach (PaymentType i in paymentTypes)
                {
                    context.PaymentType.Add(i);
                }
                context.SaveChanges();

                //seeding PRODUCT TYPES
                var productTypes = new ProductType[]
                {
                    new ProductType {
                        Type = "Household"
                    },
                    new ProductType {
                        Type = "Appliance"
                    },
                    new ProductType {
                        Type = "Automotive"
                    }
                };

                foreach (ProductType i in productTypes)
                {
                    context.ProductType.Add(i);
                }
                context.SaveChanges();

                //seeding PRODUCTS
                var products = new Product[]
                {
                    new Product {
                        ProductTypeId = productTypes.Single(s => s.Type == "Household").ProductTypeId,
                        SellerId      = customers.Single(s => s.FirstName == "Jelly").CustomerId,
                        Name          = "Lamp",
                        Description   = "Lights stuff up",
                        Price         = 13
                    },
                    new Product {
                        ProductTypeId = productTypes.Single(s => s.Type == "Appliance").ProductTypeId,
                        SellerId      = customers.Single(s => s.FirstName == "Nigel").CustomerId,
                        Name          = "Blender",
                        Description   = "Mixes stuff",
                        Price         = 13
                    },
                    new Product {
                        ProductTypeId = productTypes.Single(s => s.Type == "Automotive").ProductTypeId,
                        SellerId      = customers.Single(s => s.FirstName == "Frank").CustomerId,
                        Name          = "Crowbar",
                        Description   = "Prys at stuff",
                        Price         = 13
                    }
                };

                foreach (Product i in products)
                {
                    context.Product.Add(i);
                }
                context.SaveChanges();

                //seeding TRAINING PROGRAMS
                var trainingPrograms = new TrainingProgram[]
                {
                    new TrainingProgram {
                        Name         = "Doing Your Best",
                        MaxAttendees = 12,
                        StartDate    = new DateTime(2018, 8, 28, 2, 3, 0)
                    },
                    new TrainingProgram {
                        Name         = "Excelling at Excel",
                        MaxAttendees = 21,
                        StartDate    = new DateTime(2017, 8, 28, 2, 3, 0)
                    },
                    new TrainingProgram {
                        Name         = "Bring Your Things",
                        MaxAttendees = 3,
                        StartDate    = new DateTime(2016, 7, 28, 2, 3, 0)
                    },
                    new TrainingProgram {
                        Name         = "Do Life Better",
                        MaxAttendees = 45,
                        StartDate    = new DateTime(2015, 7, 28, 2, 3, 0)
                    }
                };

                foreach (TrainingProgram i in trainingPrograms)
                {
                    context.TrainingProgram.Add(i);
                }
                context.SaveChanges();

                //seeding ORDERS, scrambling order of customers so no initial sellerId will equal a buyerId
                var orders = new Order[]
                {
                    new Order {
                        CustomerId    = customers.Single(f => f.FirstName == "Nigel").CustomerId,
                        PaymentTypeId = paymentTypes.Single(t => t.Type == "Visa").PaymentTypeId
                    },
                    new Order {
                        CustomerId    = customers.Single(f => f.FirstName == "Frank").CustomerId,
                        PaymentTypeId = paymentTypes.Single(t => t.Type == "MasterCard").PaymentTypeId
                    },
                    new Order {
                        CustomerId    = customers.Single(f => f.FirstName == "Jelly").CustomerId,
                        PaymentTypeId = paymentTypes.Single(t => t.Type == "AmericanExpress").PaymentTypeId
                    }
                };

                foreach (Order i in orders)
                {
                    context.Order.Add(i);
                }
                context.SaveChanges();

                //seeding ORDER-PRODUCTS, matching up with the initialized orders and products by id
                var orderProducts = new OrderProduct[]
                {
                    new OrderProduct {
                        OrderId   = orders.Single(o => o.OrderId == 1).OrderId,
                        ProductId = products.Single(o => o.ProductId == 1).ProductId
                    },
                    new OrderProduct {
                        OrderId   = orders.Single(o => o.OrderId == 2).OrderId,
                        ProductId = products.Single(o => o.ProductId == 2).ProductId
                    },
                    new OrderProduct {
                        OrderId   = orders.Single(o => o.OrderId == 3).OrderId,
                        ProductId = products.Single(o => o.ProductId == 3).ProductId
                    }
                };

                foreach (OrderProduct i in orderProducts)
                {
                    context.OrderProduct.Add(i);
                }
                context.SaveChanges();

                //seeding COMPUTER-EMPLOYEES
                var computerEmployees = new ComputerEmployee[]
                {
                    new ComputerEmployee {
                        EmployeeId = employees.Single(e => e.Name == "Jon Snow").EmployeeId,
                        ComputerId = computers.Single(c => c.ComputerId == 1).ComputerId,
                        InDate     = DateTime.Now
                    },
                    new ComputerEmployee {
                        EmployeeId = employees.Single(e => e.Name == "Stephen Spielburg").EmployeeId,
                        ComputerId = computers.Single(c => c.ComputerId == 2).ComputerId,
                        InDate     = DateTime.Now
                    },
                    new ComputerEmployee {
                        EmployeeId = employees.Single(e => e.Name == "Megan Berry").EmployeeId,
                        ComputerId = computers.Single(c => c.ComputerId == 3).ComputerId,
                        InDate     = DateTime.Now
                    }
                };

                foreach (ComputerEmployee i in computerEmployees)
                {
                    context.ComputerEmployee.Add(i);
                }
                context.SaveChanges();
            }
        }