public HttpResponseMessage UpdateEvent(CodeCampInfo codeCamp) { try { var originalEvent = CodeCampDataAccess.GetItem(codeCamp.CodeCampId, codeCamp.ModuleId); var updatesToProcess = EventHasUpdates(ref originalEvent, ref codeCamp); if (updatesToProcess) { originalEvent.LastUpdatedByDate = DateTime.Now; originalEvent.LastUpdatedByUserId = UserInfo.UserID; CodeCampDataAccess.UpdateItem(originalEvent); } var savedEvent = CodeCampDataAccess.GetItem(originalEvent.CodeCampId, originalEvent.ModuleId); var response = new ServiceResponse <CodeCampInfo> { Content = savedEvent }; return(Request.CreateResponse(HttpStatusCode.OK, response.ObjectToJson())); } catch (Exception ex) { Exceptions.LogException(ex); return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ERROR_MESSAGE)); } }
public void CodeCamp_CreateFindDeleteEvent_Test() { var service = new ServiceProxy(ApiBaseUrl); var newEvent = new CodeCampInfo() { Title = "New Test Code Camp", Description = "Test code camp description.", CreatedByDate = DateTime.Now, CreatedByUserId = 1, LastUpdatedByDate = DateTime.Now, LastUpdatedByUserId = 1, BeginDate = DateTime.Now.AddDays(30), EndDate = DateTime.Now.AddDays(32), ModuleId = ModuleId }; var createResponse = service.CreateEvent(newEvent); CheckErrors(createResponse); var findResponse = service.GetEvents(ModuleId); CheckErrors(findResponse); var actualEvent = findResponse.Content.FirstOrDefault(e => e.Title == "New Test Code Camp"); Assert.AreEqual(newEvent.BeginDate, actualEvent.BeginDate); Assert.AreEqual(newEvent.EndDate, actualEvent.EndDate); Assert.AreEqual(newEvent.ModuleId, actualEvent.ModuleId); var deleteResponse = service.DeleteEvent(newEvent.CodeCampId); CheckErrors(deleteResponse); }
public ServiceResponse <string> UpdateEvent(CodeCampInfo codeCamp) { var result = new ServiceResponse <string>(); result = ServiceHelper.PostRequest <ServiceResponse <string> >(fullApiUri + "UpdateEvent", codeCamp.ObjectToJson()); return(result); }
public HttpResponseMessage CreateEvent(CodeCampInfo newEvent) { try { newEvent.CreatedByDate = DateTime.Now; newEvent.CreatedByUserId = UserInfo.UserID; newEvent.LastUpdatedByDate = DateTime.Now; newEvent.LastUpdatedByUserId = UserInfo.UserID; newEvent.ModuleId = ActiveModule.ModuleID; CodeCampDataAccess.CreateItem(newEvent); var response = new ServiceResponse <string> { Content = Globals.RESPONSE_SUCCESS }; return(Request.CreateResponse(HttpStatusCode.OK, response.ObjectToJson())); } catch (Exception ex) { Exceptions.LogException(ex); return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ERROR_MESSAGE)); } }
private bool EventHasUpdates(ref CodeCampInfo originalCodeCamp, ref CodeCampInfo newCodeCamp) { var updatesToProcess = false; if (!string.Equals(newCodeCamp.Title, originalCodeCamp.Title)) { originalCodeCamp.Title = newCodeCamp.Title; updatesToProcess = true; } if (!string.Equals(newCodeCamp.Description, originalCodeCamp.Description)) { originalCodeCamp.Description = newCodeCamp.Description; updatesToProcess = true; } if (newCodeCamp.MaximumCapacity != originalCodeCamp.MaximumCapacity) { originalCodeCamp.MaximumCapacity = newCodeCamp.MaximumCapacity; updatesToProcess = true; } if (newCodeCamp.BeginDate != originalCodeCamp.BeginDate) { originalCodeCamp.BeginDate = newCodeCamp.BeginDate; updatesToProcess = true; } if (newCodeCamp.EndDate != originalCodeCamp.EndDate) { originalCodeCamp.EndDate = newCodeCamp.EndDate; updatesToProcess = true; } if (newCodeCamp.EndDate != originalCodeCamp.EndDate) { originalCodeCamp.EndDate = newCodeCamp.EndDate; updatesToProcess = true; } if (newCodeCamp.ShowShirtSize != originalCodeCamp.ShowShirtSize) { originalCodeCamp.ShowShirtSize = newCodeCamp.ShowShirtSize; updatesToProcess = true; } if (newCodeCamp.ShowAuthor != originalCodeCamp.ShowAuthor) { originalCodeCamp.ShowAuthor = newCodeCamp.ShowAuthor; updatesToProcess = true; } if (newCodeCamp.RegistrationActive != originalCodeCamp.RegistrationActive) { originalCodeCamp.RegistrationActive = newCodeCamp.RegistrationActive; updatesToProcess = true; } if (originalCodeCamp.CustomProperties != null) { // parse custom properties for updates foreach (var property in originalCodeCamp.CustomPropertiesObj) { if (newCodeCamp.CustomPropertiesObj.Any(p => p.Name == property.Name)) { // see if the existing property needs to be updated var prop = newCodeCamp.CustomPropertiesObj.FirstOrDefault(p => p.Name == property.Name); if (!string.Equals(prop.Value, property.Value)) { property.Value = prop.Value; updatesToProcess = true; } } else { // delete the property originalCodeCamp.CustomPropertiesObj.Remove(property); updatesToProcess = true; } } } if (newCodeCamp.CustomPropertiesObj != null) { // add any new properties if (originalCodeCamp.CustomProperties == null) { foreach (var property in newCodeCamp.CustomPropertiesObj) { originalCodeCamp.CustomPropertiesObj.Add(property); updatesToProcess = true; } } else { var camp = originalCodeCamp; foreach (var property in newCodeCamp.CustomPropertiesObj.Where(property => !camp.CustomPropertiesObj.Contains(property))) { camp.CustomPropertiesObj.Add(property); updatesToProcess = true; } } } return(updatesToProcess); }