示例#1
0
文件: Poll.cs 项目: smnsht/polls
        public PollImages ToPollImages(long id, long memberId)
        {
            PollImages obj = new PollImages()
            {
                Id        = id,
                MemberId  = memberId,
                FileName  = this.FileName,
                ImgData   = this.ImageData,
                ImgHeight = (long)this.ImageHeight,
                ImgWidth  = (long)this.ImageWidth,
                TnData    = this.ThumbnailData,
                TnHeight  = (long)this.ThumbnailHeight,
                TnWidth   = (long)this.ThumbnailWidth
            };

            return(obj);
        }
示例#2
0
        public ActionResult Create(NewPoll poll)
        {
            if (_isUserLoggedIn() == false)
            {
                return(_redirectToLogin());
            }

            if (ModelState.IsValid)
            {
                long imageId  = _db.NextPollImageId();
                long pollId   = _db.NextPollId();
                long choiceId = _db.NextPollChoiceId();

                using (var tran = _db.Database.BeginTransaction()) {
                    try{
                        if (poll.HasImage())
                        {
                            PollImages pi = poll.Image.ToPollImages(imageId, _userId);
                            _db.PollImages.Add(pi);
                            _db.SaveChanges();
                            poll.Image.ImageId = imageId;
                            imageId++;
                        }

                        Polls pollEntity = poll.ToPolls(pollId, _userId);
                        _db.Polls.Add(pollEntity);
                        _db.SaveChanges();

                        // polls choices - images
                        foreach (PollChoice cho in poll.Choices)
                        {
                            if (cho.HasImage())
                            {
                                PollImages img = cho.Image.ToPollImages(imageId, _userId);

                                // poll choices shell not use full image data - only the thumbs
                                // save space!
                                img.ImgData   = "";
                                img.ImgHeight = 0;
                                img.ImgWidth  = 0;

                                _db.PollImages.Add(img);
                                cho.Image.ImageId = imageId;
                                imageId++;
                            }
                        }

                        _db.SaveChanges();

                        long chordinal = 1;

                        // poll choices
                        foreach (PollChoice cho in poll.Choices)
                        {
                            PollChoices pocho = cho.ToPollChoices(choiceId, pollId, chordinal);
                            _db.PollChoices.Add(pocho);
                            choiceId++;
                            chordinal++;
                        }

                        _db.SaveChanges();

                        tran.Commit();
                    } catch (Exception ex) {
                        tran.Rollback();
                        return(Content(ex.Message));
                    }
                }

                return(Content("ok"));
            }

            return(Content(_buildErrorMessage()));
        }