コード例 #1
0
        public ActionResult Add()
        {
            var addTicketViewModel = new AddIrregularityViewModel
            {
                Categories = this.populator.GetCategories()
            };

            return(View(addTicketViewModel));
        }
コード例 #2
0
        public ActionResult Add(AddIrregularityViewModel irregularity)
        {
            if (irregularity != null && ModelState.IsValid)
            {
                string latitude  = irregularity.Latitude;
                string longitude = irregularity.Longitude;

                var dbPosition = positions.GetPositionByLatitudeAndLongitude(latitude, longitude);
                if (dbPosition == null)
                {
                    var position = new Position {
                        Latitude = latitude, Longitude = longitude
                    };
                    positions.Post(position);
                }

                dbPosition = positions.GetPositionByLatitudeAndLongitude(latitude, longitude);

                var dbIrregularity = new Irregularity
                {
                    Title       = irregularity.Title,
                    Description = irregularity.Description,
                    CategoryId  = irregularity.CategoryId,
                    PositionId  = dbPosition.Id
                };

                if (irregularity.UploadedImage != null)
                {
                    using (var memory = new MemoryStream())
                    {
                        irregularity.UploadedImage.InputStream.CopyTo(memory);
                        var content = memory.GetBuffer();

                        dbIrregularity.Image = new Image
                        {
                            Content       = content,
                            FileExtension = irregularity.UploadedImage.FileName.Split(new[] { '.' }).Last()
                        };
                    }
                }

                int dbIrregularityId = irregularities.Add(dbIrregularity);
                ratings.Rate(dbIrregularityId, 0);
            }
            else
            {
                throw new InvalidOperationException();
            }

            return(Redirect("/"));
        }