public ResponseViewModel SaveProject(ProjectViewModel vm) { ResponseViewModel rvm = new ResponseViewModel(); if (vm.ProjectID == 0) { if (vm.Name == null) { rvm.AddError("Project name cannot be empty"); } if (vm.Description == null) { rvm.AddError("Project description cannot be empty"); } if (rvm.ErrorCount > 0) { return(rvm); } var existingProject = from rec in _projectList where rec.Name != null && rec.Name.Equals(vm.Name, StringComparison.InvariantCultureIgnoreCase) select rec; if (existingProject != null && existingProject.Count() > 0) { rvm.AddError("A project with the same name already exists, please choose a different name."); } else { vm.ProjectID = _projectList.Count + 1; _projectList.Add(vm); rvm.Data = vm; rvm.SuccessMessage = "Record Added successfully!!"; } } else { var vmNew = _projectList.SingleOrDefault(q => q.ProjectID == vm.ProjectID); if (vmNew != null) { vmNew.Name = vm.Name; vmNew.Description = vm.Description; vmNew.StartDate = vm.StartDate; vmNew.EndDate = vm.EndDate; rvm.Data = vmNew; rvm.SuccessMessage = "Record Updated successfully!!"; } else { rvm.AddError("Couldn't find the project."); } } return(rvm); }
private Task HandleExceptionAsync(HttpContext httpContext, Exception exception) { ResponseViewModel responseError = new ResponseViewModel(); if (exception is BaseException) { var ex = exception as BaseException; if (ex.Errors != null && ex.Errors.Any()) { foreach (var error in ex.Errors) { responseError.AddError(error.ErrorMessage, error.ErrorCode); } } httpContext.Response.StatusCode = ex.StatusCode; } //else if (exception is HttpException) //{ // var ex = exception as HttpException; // try // { // ErrorViewModel errorViewModel = JsonConvert.DeserializeObject<ErrorViewModel>(ex.Message); // responseError.AddError(errorViewModel.Message, errorViewModel.Code); // HttpContext.Response.StatusCode = 400; // } // catch (Exception ex) // { // responseError.AddError(ex.Message); // HttpContext.Response.StatusCode = (int)ex.StatusCode; // } //} else { _logger.LogError(exception, exception.Message); HttpContext.Response.StatusCode = 500; responseError.AddError("An unhandled exception has occured"); } httpContext.Response.ContentType = "application/json"; return(httpContext.Response.WriteAsync(JsonConvert.SerializeObject(responseError, Formatting.Indented))); }