public ActionResult Create(PersonViewModel p)
        {
            if (!ModelState.IsValid)
            {
                return(View(p));
            }

            File fileToAdd = new FileViewModelConverter().Convert(p.Photo);

            _unitOfWork.FileRepository.Add(fileToAdd);
            _unitOfWork.Save();

            Person personToAdd = new PersonViewModelConverter().Convert(p);

            personToAdd.PhotoId = fileToAdd.Id;

            _unitOfWork.PersonRepository.Add(personToAdd);
            _unitOfWork.Save();

            string dirPath = $"{enviroment.ContentRootPath}/storage/{fileToAdd.Id}";

            if (p.Photo != null)
            {
                FileManager.Save(p.Photo, dirPath);
            }

            fileToAdd.Path = $"{dirPath}/{fileToAdd.FileName}";

            _unitOfWork.FileRepository.Update(fileToAdd);
            _unitOfWork.Save();

            return(RedirectToAction("List", "Person"));
        }
        public ActionResult Edit(long id)
        {
            Person toEdit = _unitOfWork.PersonRepository.GetByKey(id);

            File photoFile = _unitOfWork.FileRepository.GetByKey(toEdit.PhotoId) ?? new Models.File();

            PersonViewModel toPass = new PersonViewModelConverter().ConvertToViewModel(toEdit);

            string photoSource = string.IsNullOrWhiteSpace(photoFile.Path)
                ? $"{enviroment.ContentRootPath}/storage/0/anonym.jpg"
                : photoFile.Path;

            string base64Image = FileManager.GetBase64File(photoSource);

            string imgSrc = $"data:{photoFile.FileType ?? "image/jpg"};base64, {base64Image}";

            ViewBag.LogoSrc = imgSrc;

            IEnumerable <PersonRole> roles = _unitOfWork.PersonRoleRepository.GetAll().Where(x => x.PersonId == id);

            foreach (var role in roles)
            {
                role.Person   = _unitOfWork.PersonRepository.GetByKey(role.PersonId);
                role.FilmRole = _unitOfWork.FilmRoleRepository.GetByKey(role.FilmRoleId);
                role.Film     = _unitOfWork.FilmRepository.GetByKey(role.FilmId);
            }

            ViewBag.Roles = roles;

            return(View(toPass));
        }