public HttpResponseMessage CreateVolunteerTask(VolunteerTaskInfo task)
        {
            try
            {
                var timeStamp = DateTime.Now;

                task.CreatedByDate       = timeStamp;
                task.CreatedByUserId     = UserInfo.UserID;
                task.LastUpdatedByDate   = timeStamp;
                task.LastUpdatedByUserId = UserInfo.UserID;

                VolunteerTaskDataAccess.CreateItem(task);

                var savedTask =
                    VolunteerTaskDataAccess.GetItems(task.VolunteerId)
                    .OrderByDescending(t => t.CreatedByDate)
                    .FirstOrDefault();

                var response = new ServiceResponse <VolunteerTaskInfo> {
                    Content = savedTask
                };

                return(Request.CreateResponse(HttpStatusCode.OK, response.ObjectToJson()));
            }
            catch (Exception ex)
            {
                Exceptions.LogException(ex);
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ERROR_MESSAGE));
            }
        }
Пример #2
0
 private void LoadSupplementalProperties(ref VolunteerInfo volunteer)
 {
     volunteer.TasksClosed  = VolunteerTaskDataAccess.GetVolunteerTaskCount(volunteer.VolunteerId, Globals.TASKSTATE_CLOSED);
     volunteer.TasksOpen    = VolunteerTaskDataAccess.GetVolunteerTaskCount(volunteer.VolunteerId, Globals.TASKSTATE_OPEN);
     volunteer.TasksOverdue = VolunteerTaskDataAccess.GetVolunteerTaskCount(volunteer.VolunteerId, Globals.TASKSTATE_OVERDUE);
     volunteer.FullName     = VolunteerDataAccess.GetItemFullName(volunteer.VolunteerId, volunteer.CodeCampId, PortalSettings.PortalId);
 }
        public HttpResponseMessage DeleteVolunteerTask(int itemId, int volunteerId)
        {
            try
            {
                VolunteerTaskDataAccess.DeleteItem(itemId, volunteerId);

                var response = new ServiceResponse <string> {
                    Content = SUCCESS_MESSAGE
                };

                return(Request.CreateResponse(HttpStatusCode.OK, response.ObjectToJson()));
            }
            catch (Exception ex)
            {
                Exceptions.LogException(ex);
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ERROR_MESSAGE));
            }
        }
        public HttpResponseMessage GetVolunteerTask(int itemId, int volunteerId)
        {
            try
            {
                var task     = VolunteerTaskDataAccess.GetItem(itemId, volunteerId);
                var response = new ServiceResponse <VolunteerTaskInfo> {
                    Content = task
                };

                if (task == null)
                {
                    ServiceResponseHelper <VolunteerTaskInfo> .AddNoneFoundError("task", ref response);
                }

                return(Request.CreateResponse(HttpStatusCode.OK, response.ObjectToJson()));
            }
            catch (Exception ex)
            {
                Exceptions.LogException(ex);
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ERROR_MESSAGE));
            }
        }
        public HttpResponseMessage MarkVolunteerTaskIncomplete(int itemId, int volunteerId)
        {
            try
            {
                var task = VolunteerTaskDataAccess.GetItem(itemId, volunteerId);

                task.Completed           = false;
                task.LastUpdatedByDate   = DateTime.Now;
                task.LastUpdatedByUserId = UserInfo.UserID;

                VolunteerTaskDataAccess.UpdateItem(task);

                var response = new ServiceResponse <VolunteerTaskInfo> {
                    Content = task
                };

                return(Request.CreateResponse(HttpStatusCode.OK, response.ObjectToJson()));
            }
            catch (Exception ex)
            {
                Exceptions.LogException(ex);
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ERROR_MESSAGE));
            }
        }
        public HttpResponseMessage UpdateVolunteerTask(VolunteerTaskInfo task)
        {
            try
            {
                var updatesToProcess = false;
                var originalTask     = VolunteerTaskDataAccess.GetItem(task.VolunteerTaskId, task.VolunteerId);

                if (!string.Equals(originalTask.Title, task.Title))
                {
                    originalTask.Title = task.Title;
                    updatesToProcess   = true;
                }

                if (originalTask.BeginDate != task.BeginDate)
                {
                    originalTask.BeginDate = task.BeginDate;
                    updatesToProcess       = true;
                }

                if (originalTask.EndDate != task.EndDate)
                {
                    originalTask.EndDate = task.EndDate;
                    updatesToProcess     = true;
                }

                if (originalTask.Completed != task.Completed)
                {
                    originalTask.Completed = task.Completed;
                    updatesToProcess       = true;
                }

                if (originalTask.CustomProperties != null)
                {
                    // parse custom properties for updates
                    foreach (var property in originalTask.CustomPropertiesObj)
                    {
                        if (task.CustomPropertiesObj.Any(p => p.Name == property.Name))
                        {
                            // see if the existing property needs to be updated
                            var prop = task.CustomPropertiesObj.FirstOrDefault(p => p.Name == property.Name);
                            if (!string.Equals(prop.Value, property.Value))
                            {
                                property.Value   = prop.Value;
                                updatesToProcess = true;
                            }
                        }
                        else
                        {
                            // delete the property
                            originalTask.CustomPropertiesObj.Remove(property);
                            updatesToProcess = true;
                        }
                    }
                }

                if (task.CustomPropertiesObj != null)
                {
                    // add any new properties
                    if (originalTask.CustomProperties == null)
                    {
                        foreach (var property in task.CustomPropertiesObj)
                        {
                            originalTask.CustomPropertiesObj.Add(property);
                            updatesToProcess = true;
                        }
                    }
                    else
                    {
                        foreach (var property in task.CustomPropertiesObj.Where(property => !originalTask.CustomPropertiesObj.Contains(property)))
                        {
                            originalTask.CustomPropertiesObj.Add(property);
                            updatesToProcess = true;
                        }
                    }
                }

                if (updatesToProcess)
                {
                    originalTask.LastUpdatedByDate   = DateTime.Now;
                    originalTask.LastUpdatedByUserId = UserInfo.UserID;

                    VolunteerTaskDataAccess.UpdateItem(originalTask);
                }

                var savedTask = VolunteerTaskDataAccess.GetItem(task.VolunteerTaskId, task.VolunteerId);

                var response = new ServiceResponse <VolunteerTaskInfo> {
                    Content = savedTask
                };

                return(Request.CreateResponse(HttpStatusCode.OK, response.ObjectToJson()));
            }
            catch (Exception ex)
            {
                Exceptions.LogException(ex);
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ERROR_MESSAGE));
            }
        }