public ActionResult Add(VMEmployee vmemployee)
        {
            TbEmployee employee = mapper.Map <VMEmployee, TbEmployee>(vmemployee);
            DateTime   zeroTime = new DateTime(1, 1, 1);

            employee.Age = (zeroTime + (DateTime.Now.Date - employee.BirthDate)).Year;
            unitOfWork.Employees.Add(employee);
            unitOfWork.Complete();
            vmemployee.Id = employee.Id;
            return(Ok(vmemployee));
        }
        public ActionResult Get(int id)
        {
            TbEmployee employee = unitOfWork.Employees.GetEagerLoaded(id);

            if (employee == null)
            {
                return(NotFound());
            }
            VMEmployee vmemployee = mapper.Map <TbEmployee, VMEmployee>(employee);

            return(Ok(vmemployee));
        }
        public ActionResult Delete(int id)
        {
            TbEmployee employee = unitOfWork.Employees.Get(id);

            if (employee == null)
            {
                return(NotFound());
            }
            unitOfWork.Employees.Remove(employee);
            unitOfWork.Complete();
            imageUpload.RemoveImage(employee.ImagePath);
            return(Ok());
        }
        public ActionResult Update(VMEmployee vmemployee)
        {
            TbEmployee employee = unitOfWork.Employees.Get(vmemployee.Id);
            DateTime   zeroTime = new DateTime(1, 1, 1);

            employee.Age          = (zeroTime + (DateTime.Now.Date - vmemployee.BirthDate)).Year;
            employee.Name         = vmemployee.Name;
            employee.BirthDate    = vmemployee.BirthDate;
            employee.Email        = vmemployee.Email;
            employee.Phone        = vmemployee.Phone;
            employee.JobId        = vmemployee.JobId;
            employee.DepartmentId = vmemployee.DepartmentId;
            employee.Address      = vmemployee.Address;
            employee.ImagePath    = vmemployee.ImagePath;
            unitOfWork.Complete();
            return(Ok(vmemployee));
        }
        public ActionResult UploadImage(int id)
        {
            TbEmployee employee = unitOfWork.Employees.Get(id);

            if (employee == null)
            {
                return(NotFound("employee not found"));
            }
            if (imageUpload.AddImage(HttpContext.Request, id))
            {
                employee.ImagePath = id.ToString() + imageUpload.GetFileExtention(HttpContext.Request);
                unitOfWork.Complete();
                return(Ok());
            }
            else
            {
                return(BadRequest());
            }
        }