void ReleaseDesignerOutlets()
        {
            if (TaskDetail != null)
            {
                TaskDetail.Dispose();
                TaskDetail = null;
            }

            if (TaskImage != null)
            {
                TaskImage.Dispose();
                TaskImage = null;
            }

            if (TaskStatus != null)
            {
                TaskStatus.Dispose();
                TaskStatus = null;
            }

            if (TaskTitle != null)
            {
                TaskTitle.Dispose();
                TaskTitle = null;
            }

            if (TaskStatusIcon != null)
            {
                TaskStatusIcon.Dispose();
                TaskStatusIcon = null;
            }
        }
        public async Task <TaskImage> ProcessImageAsync()
        {
            if (NewTaskImage == null)
            {
                return(null);
            }
            CurrentTask = new TaskImage {
                GUID = NewTaskImage.GUID
            };
            CurrentTask.OriginalURL = NewTaskImage.OriginalURL;
            CurrentImage            = await ImagePersistance.DownloadImageAsync(NewTaskImage.OriginalURL);

            if (Resize())
            {
                CurrentTask.CurrentURL = await ImagePersistance.UploadImageAsync(CurrentImage);
            }
            else
            {
                CurrentTask.CurrentURL = NewTaskImage.OriginalURL;
            }
            foreach (IImageFilter filter in Filters)
            {
                var img = filter.Create(CurrentImage);
                var url = await ImagePersistance.UploadImageAsync(img);

                CurrentTask.Filters.Add(new Filter()
                {
                    Type = filter.ToString(), URL = url
                });
            }
            CurrentTask.GUID = NewTaskImage.GUID;
            return(CurrentTask);
        }