public IActionResult Edit(int empId, bool isEdit)
        {
            var companyId = HttpContext.Session.GetInt32("company_id");

            //If edit mode, bind employe of id passed else create
            //employee with manager with passed id
            if (isEdit)
            {
                var employee      = employeeRepository.GetEmployeeInfo(empId, companyId);
                var empWithNoFile = new EmployeeWithFormPic()
                {
                    Employee = employee
                };
                return(View(empWithNoFile));
            }
            else
            {
                var newEmployee = new Employee()
                {
                    ManagerId = empId
                };
                var employeeWithPicture = new EmployeeWithFormPic()
                {
                    Employee = newEmployee
                };

                return(View(employeeWithPicture));
            }
        }
        public async Task <IActionResult> Edit(EmployeeWithFormPic employeeWithPicture)
        {
            //If invalid form rerender to inform user.
            if (!ModelState.IsValid)
            {
                return(View());
            }

            //If employee Id valid, update employee if not, create new one.
            if (employeeWithPicture.Employee.EmployeeId > 0)
            {
                //Save image data to db if image was uploaded
                if (employeeWithPicture.FormPicture != null)
                {
                    using var memoryStream = new MemoryStream();
                    await employeeWithPicture.FormPicture.CopyToAsync(memoryStream);

                    employeeWithPicture.Employee.EmployeePicture = new EmployeePicture()
                    {
                        Content = memoryStream.ToArray(),
                        Name    = employeeWithPicture.FormPicture.FileName,
                    };
                    employeeRepository.UpdateEmployee(employeeWithPicture.Employee);
                }
                else
                {
                    //Get previous employee picture if picture was not changed.
                    var employeePicture = employeeRepository
                                          .GetEmployeeInfo(employeeWithPicture.Employee.EmployeeId, employeeWithPicture.Employee.CompanyId)
                                          .EmployeePicture;

                    employeeWithPicture.Employee.EmployeePicture = employeePicture;
                    employeeRepository.UpdateEmployee(employeeWithPicture.Employee);
                }



                return(RedirectToAction("Chart", "Diagram", employeeWithPicture.Employee.EmployeeId));
            }
            else
            {
                var companyId = HttpContext.Session.GetInt32("company_id");
                employeeWithPicture.Employee.CompanyId = companyId;

                //Save image data to db if image was uploaded
                if (employeeWithPicture.FormPicture != null)
                {
                    using var memoryStream = new MemoryStream();
                    await employeeWithPicture.FormPicture.CopyToAsync(memoryStream);

                    employeeWithPicture.Employee.EmployeePicture = new EmployeePicture()
                    {
                        Content = memoryStream.ToArray(),
                        Name    = employeeWithPicture.FormPicture.FileName
                    };
                }
                else
                {
                    employeeWithPicture.Employee.EmployeePicture = new EmployeePicture();
                }

                employeeRepository.AddEmployee(employeeWithPicture.Employee);
                return(RedirectToAction("Chart", "Diagram", employeeWithPicture.Employee.ManagerId));
            }
        }