예제 #1
0
        public override int GetHashCode()
        {
            int hash = 1;

            if (Ret != 0)
            {
                hash ^= Ret.GetHashCode();
            }
            if (userMoney_ != null)
            {
                hash ^= UserMoney.GetHashCode();
            }
            if (userDraw_ != null)
            {
                hash ^= UserDraw.GetHashCode();
            }
            hash ^= awards_.GetHashCode();
            if (userDrawInfo_ != null)
            {
                hash ^= UserDrawInfo.GetHashCode();
            }
            if (userItem_ != null)
            {
                hash ^= UserItem.GetHashCode();
            }
            return(hash);
        }
예제 #2
0
        public async Task <IActionResult> Create(SubmissionForm submissionForm)
        {
            if (!ModelState.IsValid)
            {
                return(RedirectToAction("Index", submissionForm));
            }
            DateTime minimum = DateTime.Now.AddYears(-18);

            //Check age
            if (minimum < submissionForm.Age)
            {
                return(BadRequest(new { message = "bad request age under 18" }));
            }



            var serialNumber = await _mvcDrawContext.SerialNumbers.Where(s => s.SerialNumberValue == submissionForm.SerialNumber).FirstOrDefaultAsync();

            //Valid serial number? A part of buisness Logic
            if (serialNumber == null || serialNumber.IsActive == false)
            {
                return(BadRequest(new { message = "bad request INVALID serial number" }));
            }


            //Does User Exist?
            var user = await _mvcDrawContext.Users.Where(u => u.EmailAddress == submissionForm.EmailAddress).FirstOrDefaultAsync();

            if (user == null)
            {
                user = new UserDraw()
                {
                    FirstName = submissionForm.FirstName, LastName = submissionForm.LastName, EmailAddress = submissionForm.EmailAddress
                };
                var result = await _mvcDrawContext.Users.AddAsync(user);

                await _mvcDrawContext.SaveChangesAsync();
            }

            Draw draw = new Draw()
            {
                SerialNumberId = serialNumber.Id, UserDrawId = user.Id
            };
            var resultForDraw = await _mvcDrawContext.Draws.AddAsync(draw);

            serialNumber.AmountUsed += 1;
            if (serialNumber.AmountUsed >= 2)
            {
                serialNumber.IsActive = false;
            }
            await _mvcDrawContext.SaveChangesAsync();

            submissionForm.Entered = true;
            return(View("Index", submissionForm));
            //return RedirectToAction("Index", submissionForm);
        }
예제 #3
0
        protected override void OnMouseDoubleClick(MouseEventArgs e)
        {
            if (UserDraw != null)
            {
                UserDraw.OnMouseDoubleClick(this, e);
            }


            base.OnMouseDoubleClick(e);
        }
예제 #4
0
        //Point _lastRefreshMousePoint = Point.Empty;
        protected override void OnMouseMove(MouseEventArgs e)
        {
            _curMousePoint = e.Location;
            var rp = GetRotatedPoint(e.Location, -RotationAngle);

            if (e.Button == MouseButtons.Left)
            {
                map.IsDragging = true;
                this.Cursor    = Cursors.SizeAll;
                //bool isUpdateTiles = RotationAngle == 0;
                //if (RotationAngle==0)
                //{
                //    map.CenterOffSet(_lastMousePoint.X - rp.X, _lastMousePoint.Y - rp.Y);
                //}
                //else
                //{
                var rpLast = GetRotatedPoint(_lastMousePoint, -RotationAngle);
                var dx     = rpLast.X - rp.X;
                var dy     = rpLast.Y - rp.Y;
                if (RotationAngle != 0)
                {
                    _tileTranslate.Offset(-dx, -dy);
                }
                map.CenterMove(dx, dy, RotationAngle == 0);

                //}
                //_isNeedRefresh = true;
                Refresh();
            }
            else
            {
                map.IsDragging = false;
                this.Cursor    = Cursors.Default;


                if (_lstLayler != null)
                {
                    foreach (var item in _lstLayler)
                    {
                        item.OnMouseMove(this, e);
                    }
                }
            }

            if (UserDraw != null)
            {
                UserDraw.OnMouseMove(this, e);
            }
            base.OnMouseMove(e);
            _lastMousePoint = e.Location;
        }
예제 #5
0
        protected override void OnMouseUp(MouseEventArgs e)
        {
            if (e.Location.Equals(_lastMouseDownPoint))
            {
                if (UserDraw != null)
                {
                    UserDraw.OnMouseClick(this, e);
                }
            }

            switch (e.Button)
            {
            case MouseButtons.Left:
                map.IsDragging = false;
                if (RotationAngle != 0)
                {
                    //map.CenterOffSet(_lastMouseDownPoint.X - _lastMousePoint.X, _lastMouseDownPoint.Y - _lastMousePoint.Y);
                    _tileTranslate = new Point();
                    map.UpdateDrawTiles();
                    Refresh();
                }
                break;

            case MouseButtons.None:
                break;

            case MouseButtons.Right:
                break;

            case MouseButtons.Middle:
                break;

            case MouseButtons.XButton1:
                break;

            case MouseButtons.XButton2:
                break;

            default:
                break;
            }


            base.OnMouseUp(e);
        }
예제 #6
0
 public void MergeFrom(DrawRes other)
 {
     if (other == null)
     {
         return;
     }
     if (other.Ret != 0)
     {
         Ret = other.Ret;
     }
     if (other.userMoney_ != null)
     {
         if (userMoney_ == null)
         {
             userMoney_ = new global::Com.Proto.UserMoneyPB();
         }
         UserMoney.MergeFrom(other.UserMoney);
     }
     if (other.userDraw_ != null)
     {
         if (userDraw_ == null)
         {
             userDraw_ = new global::Com.Proto.UserDrawPB();
         }
         UserDraw.MergeFrom(other.UserDraw);
     }
     awards_.Add(other.awards_);
     if (other.userDrawInfo_ != null)
     {
         if (userDrawInfo_ == null)
         {
             userDrawInfo_ = new global::Com.Proto.UserDrawInfoPB();
         }
         UserDrawInfo.MergeFrom(other.UserDrawInfo);
     }
     if (other.userItem_ != null)
     {
         if (userItem_ == null)
         {
             userItem_ = new global::Com.Proto.UserItemPB();
         }
         UserItem.MergeFrom(other.UserItem);
     }
 }
예제 #7
0
        protected override void OnPaint(PaintEventArgs e)
        {
            base.OnPaint(e);
            _swRenser.Restart();
            if (_allTilesBitmap != null)
            {
                //Bitmap bitmap = null;
                //lock (_bitmapLocker)
                //{
                //    bitmap = _allTilesBitmap.Clone() as Bitmap;
                //}


                //using (var gb = Graphics.FromImage(_allTilesBitmap))
                //{


                var g = e.Graphics;
                g.SmoothingMode      = SmoothingMode.HighQuality;
                g.PixelOffsetMode    = PixelOffsetMode.HighQuality;
                g.Clip               = new Region(this.ClientRectangle);
                g.CompositingQuality = CompositingQuality.HighQuality;

                //整个地图控件GDI旋转
                if (RotationAngle != 0)
                {
                    float transX = this.Width / 2;
                    float transY = this.Height / 2;
                    g.TranslateTransform(transX, transY);//屏幕中心旋转
                    g.RotateTransform(RotationAngle);
                    g.TranslateTransform(-transX, -transY);
                    if (map.IsDragging)
                    {
                        g.TranslateTransform(_tileTranslate.X, _tileTranslate.Y);
                    }
                }


                //g.DrawImage(_allTilesBitmap, map.RectTilesBitmap.ToRectangle());
                var srcRect = map.TilesArea.ToRectangle();
                srcRect.Offset(new Point(-map.RectTilesBitmap.LeftTop.X, -map.RectTilesBitmap.LeftTop.Y));
                lock (_bitmapLocker)
                {
                    g.DrawImage(_allTilesBitmap, map.TilesArea.ToRectangle(), srcRect, GraphicsUnit.Pixel);
                }

                g.ResetTransform();

                DrawLaylers(g);
                if (UserDraw != null)
                {
                    UserDraw.Draw(this, g);
                }

                if (IsShowMapMsg)
                {
                    DrawMapMsg(g);
                }
                _swRenser.Stop();
                if (IsShowRenderMsg)
                {
                    DrawRenderMsg(g);
                }
                if (IsShowMapScale)
                {
                    DrawMapScale(g);
                }
                //}
            }
        }