Пример #1
0
        public ActionResult EditStory(StoryViewModel model, int[] selectedItems)
        {
            StoryDetail detail = model.ConvertToStoryDetail();

            int[] items = selectedItems;
            if (selectedItems == null)
            {
                items = new int[0];
            }
            if (model.Title == null)//Invalid Model State, dirty approach
            {
                model.AllGroups = new GroupViewModel[0];
                TaskResult <IEnumerable <GroupDetail> > groupDetailRequest = groupDataService.GetGroups(new DataRequest {
                    StartPosition = 0, Count = 100
                });
                if (groupDetailRequest.Data != null)
                {
                    model.AllGroups = groupDetailRequest.Data.Select(a => a.ConvertToGroupViewModel());
                }
                return(View(model));
            }
            detail.GroupDetails = items.Select(a => new GroupDetail {
                Id = a
            });
            storyDataService.PostStory(detail);
            return(RedirectToAction("Index"));
        }
Пример #2
0
 public static StoryViewModel ConvertToStoryViewModel(this StoryDetail model)
 {
     return(new StoryViewModel
     {
         Content = model.Content,
         Description = model.Description,
         GroupDetails = model.GroupDetails.Select(a => a.ConvertToGroupViewModel()).AsEnumerable(),
         Id = model.Id,
         PostedOn = model.PostedOn,
         Title = model.Title,
         UserId = model.UserId
     });
 }
Пример #3
0
 void detail_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
 {
     try
     {
         StoryDetail s = sender as StoryDetail;
         s.PropertyChanged     -= detail_PropertyChanged;
         ProgressBar.Visibility = Visibility.Collapsed;
         DataContext            = s.Detail;
         CommentViewer.NavigateToString(CoreServices.Instance.AddCommentHTML(s.Detail.body));
         CommentViewer.Navigating += new EventHandler <NavigatingEventArgs>(ContentText_Navigating);
         CommentFooter.Visibility  = Visibility.Visible;
         shouldStartWebBrowser     = true;
     }
     catch
     {
     }
 }
Пример #4
0
        public TaskResult <bool> SaveStory(StoryDetail story)
        {
            TaskResult <bool> result = null;

            try
            {
                if (story.Id == null)//new
                {
                    Story storyEntity = new Story {
                        Content = story.Content, DateCreated = DateTime.Now, Description = story.Description, Title = story.Title, UserId = story.UserId.Value
                    };
                    _storyRepository.Insert(storyEntity);
                    //_storyRepository.SaveChanges();
                    _storyRepository.AddStoryToGroups(storyEntity, story.GroupDetails.Select(a => a.Id.Value).AsEnumerable());
                    _storyRepository.SaveChanges();
                }
                else
                {
                    Story _story = _storyRepository.GetSingle(a => a.Id == story.Id);
                    _story.Description  = story.Description;
                    _story.Title        = story.Title;
                    _story.Content      = story.Content;
                    _story.DateModified = DateTime.Now;
                    IEnumerable <Group> groups = _story.Groups.ToList();
                    foreach (var gr in groups)
                    {
                        _story.Groups.Remove(gr);
                    }
                    _storyRepository.Update(_story);
                    _storyRepository.SaveChanges();

                    _storyRepository.AddStoryToGroups(_story, story.GroupDetails.Select(a => a.Id.Value).AsEnumerable());
                    _storyRepository.SaveChanges();
                }
                result = new TaskResult <bool> {
                    Data = true, state = StatusState.DoneState
                };
            }
            catch (Exception e)
            {
                result = new TaskResult <bool> {
                    Data = false, state = StatusState.CancelState
                };
            }
            return(result);
        }
Пример #5
0
        public StoryDetail GetStoryDetail(int id, ref bool create)
        {
            foreach (StoryDetail s in _storyDetails)
            {
                if (s.Detail.id == id)
                {
                    create = false;
                    return(s);
                }
            }

            StoryDetail sd = new StoryDetail(id);

            _storyDetails.Add(sd);
            create = true;
            return(sd);
        }
        TaskResult <bool> IStoryDataService.PostStory(StoryDetail story)
        {
            TaskResult <bool> result;
            HttpClient        client = GetHTTPClient();
            var content = new ObjectContent(typeof(StoryDetail), story, new JsonMediaTypeFormatter());
            HttpResponseMessage response = client.PostAsync("api/Story/PostStory", content).Result;

            if (response.IsSuccessStatusCode)
            {
                result = response.Content.ReadAsAsync <TaskResult <bool> >().Result;
            }
            else
            {
                result = new TaskResult <bool> {
                    state = StatusState.CancelState, Data = false
                };
            }
            return(result);
        }
Пример #7
0
        public ActionResult Create(StoryViewModel model, int[] selectedItems)
        {
            if (model.Title == null)//Invalid Model State, dirty approach
            {
                return(View(model));
            }
            int[] items = selectedItems;
            if (selectedItems == null)
            {
                items = new int[0];
            }
            StoryDetail detail = model.ConvertToStoryDetail();

            detail.UserId       = UserDetails.Id;
            detail.GroupDetails = items.Select(a => new GroupDetail {
                Id = a
            });
            storyDataService.PostStory(detail);
            return(RedirectToAction("Index"));
        }
Пример #8
0
        protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
        {
            string sStory;

            if (NavigationContext.QueryString.TryGetValue("Story", out sStory))
            {
                _story = int.Parse(sStory);
            }

            bool        create = false;
            StoryDetail detail = CoreServices.Instance.GetStoryDetail(_story, ref create);

            if (create)
            {
                ProgressBar.Visibility  = Visibility.Visible;
                detail.PropertyChanged += detail_PropertyChanged;
            }
            else
            {
                DataContext = detail.Detail;
                Loaded     += new RoutedEventHandler(StoryPage_Loaded);
            }
            base.OnNavigatedTo(e);
        }
Пример #9
0
 public TaskResult <bool> PostStory([FromBody] StoryDetail story)
 {
     return(_storyManager.SaveStory(story));
 }
Пример #10
0
    public void AddVideo(string videoName, string filePath)
    {
        StoryDetail storyDetail = new StoryDetail(videoName, filePath, "Video");

        storyDetails.Add(videoName, storyDetail);
    }
Пример #11
0
    public void AddPhoto(string photoName, string filePath)
    {
        StoryDetail storyDetail = new StoryDetail(photoName, filePath, "Photo");

        storyDetails.Add(photoName, storyDetail);
    }