public ActionResult <List <User> > AddUsers(UserBatch userList) { List <User> returnUserObj = new List <User>(); foreach (User user in userList.UserList) { returnUserObj.Add(_service.AddUser(user)); } ReturnMessage rm = new ReturnMessage(string.Format("{0} records created", returnUserObj.Count)); return(Ok(rm));//TODO: Return list of successfully imported or failed users }
public List <User> Patch(UserBatch request) { if (true != request?.Any()) { throw new HttpError(HttpStatusCode.NotFound, "Request cannot be empty."); } var ret = new List <User>(); var errors = new List <ResponseError>(); var errorMap = new Dictionary <string, string>(); var i = 0; request.ForEach(dto => { try { var obj = Patch(dto) as User; ret.Add(obj); errorMap[$"{i}"] = $"true"; } catch (Exception ex) { errorMap[$"{i}"] = $"false"; errors.Add(new ResponseError() { Message = $"{ex.Message}{Environment.NewLine}{ex.InnerException?.Message}", ErrorCode = $"{i}" }); } i += 1; }); base.Response.AddHeader("X-AutoBatch-Completed", $"{ret.Count} succeeded"); if (errors.Any()) { throw new HttpError(HttpStatusCode.BadRequest, $"{errors.Count} failed in batch") { Response = new ErrorResponse() { ResponseStatus = new ResponseStatus { ErrorCode = nameof(HttpError), Meta = errorMap, Message = "Incomplete request", Errors = errors } } }; } return(ret); }
public List <User> Put(UserBatch request) { return(Patch(request)); }