Ejemplo n.º 1
0
        public Response AddTrainingMaterial(TrainingMaterialRequest request)
        {
            var validationResult = trainingMaterialRequestValidator.Validate(request);

            if (!validationResult.IsValid)
            {
                return(Response.CreateResponse(validationResult.Messages));
            }

            var handler        = fileHandlerFactory.GetFileHandler(request.ContentType);
            var uploadResponse = handler.Upload(new UploadRequest {
                ContentType      = request.ContentType,
                OriginalFileName = request.OriginalFileName,
                Stream           = request.Stream,
                Description      = request.Description,
                Title            = request.Title
            });

            if (!uploadResponse.Response.RequestIsFulfilled)
            {
                return(Response.CreateResponse(uploadResponse.Response.Errors));
            }

            TrainingMaterial material = MapTrainingMaterial(request, uploadResponse.Result);

            try {
                libraryRepository.AddTrainingMaterial(material);
                return(Response.CreateSuccessResponse());
            } catch (Exception ex) {
                return(Response.CreateResponse(ex));
            } finally {
                UpdateCache(request.ClubId);
            }
        }