Beispiel #1
0
        public ProblemImageViewModel(ProblemImage image)
        {
            if (image != null)
            {
                ID      = image.ID;
                Session = new SessionViewModel(image.Session);

                if (image.ParentImage != null)
                {
                    ParentImage = new ProblemImageViewModel(image.ParentImage);
                }

                Title          = image.Title;
                Emotion        = image.Emotion;
                Location       = image.Location;
                Characteristic = image.Characteristic;
                IsMine         = image.IsMine;
                IsIDo          = image.IsIDo;
                IsForever      = image.IsForever;
                LikeScore      = image.LikeScore;
                IsHidden       = image.IsHidden;
            }
        }
Beispiel #2
0
        public IActionResult CreateClientProblemImage([FromBody] CreateUpdateProblemImageRequest request, long clientID, long problemID)
        {
            var user = UserService.Get(long.Parse(User.Identity.Name));

            if (user == null)
            {
                return(NotFound(new ResponseModel
                {
                    Success = false,
                    Message = "Пользователь не найден"
                }));
            }

            var specialist = SpecialistService.GetSpecialistFromUser(user);

            if (specialist == null)
            {
                return(NotFound(new ResponseModel
                {
                    Success = false,
                    Message = "Специалист не найден"
                }));
            }

            var client = UserService.Get(clientID);

            if (client == null)
            {
                return(NotFound(new ResponseModel
                {
                    Success = false,
                    Message = "Клиент не найден"
                }));
            }

            var problem = ProblemService.Get(problemID);

            if (problem == null)
            {
                return(NotFound(new ResponseModel
                {
                    Success = false,
                    Message = "Проблема не найдена"
                }));
            }

            if (problem.User != client)
            {
                return(BadRequest(new ResponseModel
                {
                    Success = false,
                    Message = "Ошибка доступа"
                }));
            }

            var session = SessionService.GetCurrentSession(problem);

            if (session == null)
            {
                return(NotFound(new ResponseModel
                {
                    Success = false,
                    Message = "Активная сессия не найдена"
                }));
            }

            if (session.Problem != problem)
            {
                return(BadRequest(new ResponseModel
                {
                    Success = false,
                    Message = "Ошибка доступа"
                }));
            }

            var problemImage = new ProblemImage
            {
                Session        = session,
                Title          = request.Title,
                Emotion        = request.Emotion,
                Characteristic = request.Characteristic,
                Location       = request.Location,
                LikeScore      = request.LikeScore,
                IsMine         = request.IsMine,
                IsIDo          = request.IsIDo,
                IsForever      = request.IsForever,
                IsHidden       = false
            };

            if (request.ParentImageID != 0)
            {
                var parentImage = ProblemImageService.Get(request.ParentImageID);
                if (parentImage == null)
                {
                    return(NotFound(new ResponseModel
                    {
                        Success = false,
                        Message = "Зависимость не найдена"
                    }));
                }

                problemImage.ParentImage = parentImage;
            }

            ProblemImageService.Create(problemImage);

            var problemImages = ProblemImageService.GetProblemImages(problem)
                                .Select(x => new ProblemImageViewModel(x))
                                .ToList();

            return(Ok(new DataResponse <List <ProblemImageViewModel> >
            {
                Data = problemImages
            }));
        }