コード例 #1
0
        public static string Execute(string[] command)
        {
            int years;

            if (!int.TryParse(command[1], out years) || years < 0)
            {
                throw new ArgumentException("Invalid Id");
            }

            var result = new StringBuilder();

            using (var db = new HomeworkDbContext())
            {
                var employees = db.Employees
                                .Include(x => x.Manager)
                                .ThenInclude(x => x.FirstName)
                                .ProjectTo <ListEmployeesOlderThanDto>()
                                .ToList();

                if (!employees.Any())
                {
                    throw new ArgumentException($"No employees older than {years}");
                }

                foreach (var e in employees)
                {
                    var manager = e.Manager == null ? "[no manager]" : e.Manager.LastName;

                    result.AppendLine($"{e.FirstName} {e.LastName} - ${e.Salary:f2} - Manager: {manager}");
                }
            }

            return(result.ToString());
        }
コード例 #2
0
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env, HomeworkDbContext context)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.ConfigureCustomExceptionHandler();

            app.UseSwagger();
            app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint("/swagger/v1/swagger.json", "HW3");
            });

            //app.UseHttpsRedirection();

            app.UseCors(bulder =>
                        bulder.AllowAnyHeader()
                        .AllowAnyMethod()
                        .AllowCredentials()
                        .WithOrigins("http://localhost:4200"));

            app.UseRouting();
            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });

            context.Database.Migrate();
        }
コード例 #3
0
        public static string Execute(string[] command)
        {
            int id;

            if (!int.TryParse(command[1], out id))
            {
                throw new ArgumentException("Invalid Id");
            }
            var result = new StringBuilder();

            using (var db = new HomeworkDbContext())
            {
                var employee = db.Employees
                               .Find(id);

                var dto = Mapper.Map <EmployeeDto>(employee);

                if (dto == null)
                {
                    throw new ArgumentException("No Employee with that id !");
                }

                result.Append($"ID: {id} - {dto.FirstName} {dto.LastName} - ${dto.Salary:f2}");
            }
            return(result.ToString());
        }
コード例 #4
0
        // TODO: reverse
        //[Authorize(Roles = "Student")]
        public ActionResult Student()
        {
            HomeworkDbContext homeworkDb = new HomeworkDbContext();
            // TODO: get homework by courseID
            List <Homework> model = (from homework in homeworkDb.DbSet select homework).ToList();

            return(View(model));
        }
コード例 #5
0
 private static void ResetDatabase()
 {
     using (var db = new HomeworkDbContext())
     {
         db.Database.EnsureDeleted();
         db.Database.EnsureCreated();
     }
 }
コード例 #6
0
        public static string Execute(string[] command)
        {
            var id      = int.Parse(command[1]);
            var address = string.Join(" ", command.Skip(2));

            using (var db = new HomeworkDbContext())
            {
                var employee = db.Employees.Find(id);
                employee.Address = address;

                db.SaveChanges();
            }

            return("Address is set");
        }
コード例 #7
0
        public static string Execute(string[] command)
        {
            var id   = int.Parse(command[1]);
            var date = DateTime.ParseExact(command[3], "dd-MM-yyyy", CultureInfo.InvariantCulture);

            using (var db = new HomeworkDbContext())
            {
                var employee = db.Employees.Find(id);

                employee.BirthDay = date;

                db.SaveChanges();
            }

            return($"Birthday is set");
        }
コード例 #8
0
        public static string Execute(string[] command)
        {
            var empId = int.Parse(command[1]);
            var manId = int.Parse(command[2]);

            using (var db = new HomeworkDbContext())
            {
                var employee = db.Employees.Find(empId);
                var manager  = db.Employees.Find(manId);

                manager.Employees.Add(employee);

                db.SaveChanges();
            }

            return($"Manager with Id {manId} is now a Manager to Employee with Id {empId}");
        }
コード例 #9
0
        public static string Execute(string[] command)
        {
            int id;

            if (!int.TryParse(command[1], out id))
            {
                throw new ArgumentException("Invalid Id");
            }

            var result = new StringBuilder();

            using (var db = new HomeworkDbContext())
            {
                var employee = db.Employees.Find(id);

                var dto = Mapper.Map <EmployeeDto>(employee);

                if (dto == null)
                {
                    throw new ArgumentException("No Employee with that id !");
                }

                var date    = "no date !";
                var address = employee.Address;

                if (employee.BirthDay != null)
                {
                    date = employee.BirthDay.ToString();
                }

                if (employee.Address == null)
                {
                    address = "No Address";
                }

                result.Append($"ID: {id} - {dto.FirstName} {dto.LastName} - ${dto.Salary:f2}"
                              + Environment.NewLine
                              + $"Birthday: {date}"
                              + Environment.NewLine
                              + $"Address: {address}");
            }
            return(result.ToString());
        }
コード例 #10
0
        public static string Execute(string[] command)
        {
            int id;

            try
            {
                id = int.Parse(command[1]);
            }
            catch (Exception)
            {
                throw new ArgumentException("invalid id");
            }

            var result = new StringBuilder();

            using (var db = new HomeworkDbContext())
            {
                var manager = db.Employees
                              .Include(x => x.Employees)
                              .SingleOrDefault(x => x.Id == id);

                if (manager == null)
                {
                    throw new ArgumentException("There is No Person With That Id !");
                }

                var dto = Mapper.Map <ManagerDto>(manager);

                if (dto.EmployeesCount == 0)
                {
                    throw new ArgumentException($"{dto.FirstName} is not a manager !");
                }

                result.AppendLine($"{dto.FirstName} {dto.LastName} | Employees: {dto.EmployeesCount}");

                foreach (var e in dto.Employees)
                {
                    result.AppendLine($"- {e.FirstName} {e.LastName} - ${e.Salary:f2}");
                }
            }

            return(result.ToString());
        }
コード例 #11
0
        public static string Execute(string[] command)
        {
            var firstName = command[1];
            var lastName  = command[2];
            var salary    = decimal.Parse(command[3]);

            using (var db = new HomeworkDbContext())
            {
                var employee = new EmployeeDto()
                {
                    FirstName = firstName,
                    LastName  = lastName,
                    Salary    = salary
                };

                db.Employees.Add(Mapper.Map <Employee>(employee));

                db.SaveChanges();
            }

            return($"Employee {firstName} {lastName} with Salary {salary} was added");
        }
コード例 #12
0
 public ProductController(HomeworkDbContext context)
 {
     _context = context;
 }
コード例 #13
0
 public Repository(HomeworkDbContext context, IUnitOfWork unitOfWork)
 {
     _context        = context;
     this.unitOfWork = unitOfWork;
 }
コード例 #14
0
 public UnitOfWork(HomeworkDbContext context)
 {
     _context = context;
 }
コード例 #15
0
 public CategoriesController(HomeworkDbContext context)
 {
     _context = context;
 }