예제 #1
0
        public Infrastructure.ApiResponse <Services.ViewModel.CourseViewModel> Post([FromBody] Services.ViewModel.CourseViewModel model)
        {
            var response = new Infrastructure.ApiResponse <Services.ViewModel.CourseViewModel>();

            try{
                var req = new Services.Message.AddCourseRequest();
                req.course = model;

                _courseService.AddCourse(req);

                response.status = true;
                response.data   = model;
                response.code   = System.Net.HttpStatusCode.Created;
            }catch (Infrastructure.BusinessRuleException bex) {
                response.status        = true;
                response.code          = System.Net.HttpStatusCode.BadRequest;
                response.brokenRules   = bex.BrokenRules;
                response.error_message = bex.Message;
            }catch (Exception ex) {
                response.status        = true;
                response.code          = System.Net.HttpStatusCode.InternalServerError;
                response.error_message = "Ocorreu um erro inesperado. Entre em contato com o nosso time de desenvolvimento.";
            }
            return(response);
        }
        public async Task <IActionResult> Detail([Bind("Id,name,image,free,description,duration,schoolId,categoriesId,views,order")] Services.ViewModel.CourseViewModel model, ICollection <IFormFile> files)
        {
            var uploads = Path.Combine(_environment.WebRootPath, "images/specialists");

            if (files != null)
            {
                foreach (var file in files)
                {
                    if (file.Length > 0)
                    {
                        var fileextension = Path.GetExtension(file.FileName);
                        var filename      = Guid.NewGuid().ToString() + fileextension;
                        model.image = filename;

                        using (var fileStream = new FileStream(Path.Combine(uploads, filename), FileMode.Create))
                        {
                            await file.CopyToAsync(fileStream);
                        }
                    }
                }
            }

            Infrastructure.ApiResponse <EscolaDeVoce.Services.ViewModel.CourseViewModel> response = null;

            System.Net.Http.HttpMethod method = System.Net.Http.HttpMethod.Post;
            string url = Helpers.EscolaDeVoceEndpoints.Courses.getCourses;

            if (model.Id != Guid.Empty)
            {
                method = System.Net.Http.HttpMethod.Put;
                url   += "/" + model.Id.ToString();
            }

            response = await ApiRequestHelper.postPutRequest <Infrastructure.ApiResponse <EscolaDeVoce.Services.ViewModel.CourseViewModel> >(
                url,
                method,
                JsonConvert.SerializeObject(model)
                );

            if (model.Id != Guid.Empty || (response.data != null && response.data.Id != Guid.Empty))
            {
                var Id = model.Id != Guid.Empty ? model.Id : response.data.Id;
                return(RedirectToAction("Detail", new { id = Id.ToString() }));
            }
            return(RedirectToAction("Index"));
        }
예제 #3
0
        public Infrastructure.ApiResponse <Services.ViewModel.CourseViewModel> Put(string id, [FromBody] Services.ViewModel.CourseViewModel model)
        {
            var response = new Infrastructure.ApiResponse <Services.ViewModel.CourseViewModel>();

            try{
                Guid courseid = Guid.Empty;
                if (!Guid.TryParse(id, out courseid))
                {
                    return(Infrastructure.ApiResponse <Services.ViewModel.CourseViewModel> .CreateResponse(false, "Curso não encontrado", null, System.Net.HttpStatusCode.NotFound));
                }

                model.Id = courseid;
                _courseService.UpdateCourse(new Services.Message.UpdateCourseRequest()
                {
                    course = model
                });

                response.status = true;
                response.data   = model;
                response.code   = System.Net.HttpStatusCode.Created;
            }catch (Infrastructure.BusinessRuleException bex) {
                response.status        = true;
                response.code          = System.Net.HttpStatusCode.BadRequest;
                response.brokenRules   = bex.BrokenRules;
                response.error_message = bex.Message;
            }catch (Exception ex) {
                response.status        = true;
                response.code          = System.Net.HttpStatusCode.InternalServerError;
                response.error_message = "Ocorreu um erro inesperado. Entre em contato com o nosso time de desenvolvimento.";
            }

            return(response);
        }