コード例 #1
0
        //
        // GET: /Channel/
        public ActionResult Index()
        {
            var service = new ReadModelService.SimpleTwitterReadModelServiceClient();
            var query = service.GetChannels();

            return View(query);
        }
コード例 #2
0
        //
        // GET: /Channel/

        public ActionResult Index()
        {
            var service = new ReadModelService.SimpleTwitterReadModelServiceClient();
            var query   = service.GetChannels();

            return(View(query));
        }
コード例 #3
0
        //
        // GET: /User/

        public ActionResult Index(string id)
        {
            var service = new ReadModelService.SimpleTwitterReadModelServiceClient();
            var query   = service.GetUsers();

            if (id != null)
            {
                query = query.Where(n => n.Id.ToString() == id).ToArray();
            }

            return(View(query));
        }
コード例 #4
0
        public ActionResult Edit(string userId = "")
        {
            var idGuid = Guid.Empty;

            if (!Guid.TryParse(userId, out idGuid))
            {
                RedirectToAction("Index");
            }

            var service = new ReadModelService.SimpleTwitterReadModelServiceClient();
            var query   = service.GetUsers().SingleOrDefault(n => n.Id == idGuid);

            return(View(Models.UserModel.FromReadModel(query)));
        }
コード例 #5
0
        public ActionResult Details(string id)
        {
            var service = new ReadModelService.SimpleTwitterReadModelServiceClient();
            var query = service.GetUsers();

            if (id == null)
            {
                RedirectToAction("Index");
            }

            query = query.Where(n => n.Id.ToString() == id).ToArray();

            return View(query.Single());
        }
コード例 #6
0
        public ActionResult Details(string id)
        {
            var service = new ReadModelService.SimpleTwitterReadModelServiceClient();
            var query   = service.GetUsers();

            if (id == null)
            {
                RedirectToAction("Index");
            }

            query = query.Where(n => n.Id.ToString() == id).ToArray();

            return(View(query.Single()));
        }
コード例 #7
0
        public ActionResult Edit(string userId="")
        {
            var idGuid = Guid.Empty;

            if (!Guid.TryParse(userId, out idGuid))
            {
                RedirectToAction("Index");
            }

            var service = new ReadModelService.SimpleTwitterReadModelServiceClient();
            var query = service.GetUsers().SingleOrDefault(n => n.Id == idGuid);

            return View(Models.UserModel.FromReadModel(query));
        }
コード例 #8
0
        public ActionResult JsonRegister(RegisterModel model)
        {
            if (ModelState.IsValid)
            {
                if (DoRegister(model))
                {
                    var readModel = new ReadModelService.SimpleTwitterReadModelServiceClient();
                    var user = readModel.GetUsers().Where(n => n.Username == model.UserName).SingleOrDefault();
                    Session.Add("UserID", user.Id);
                    return Json(new { success = true });
                }
            }

            // If we got this far, something failed
            return Json(new { errors = GetErrorsFromModelState() });
        }
コード例 #9
0
        public ActionResult Add()
        {
            ViewBag.Channels = new List<SelectListItem>();

            var service = new ReadModelService.SimpleTwitterReadModelServiceClient();
            foreach (var channel in service.GetChannels())
            {
                ViewBag.Channels.Add(new SelectListItem()
                {
                    Text = channel.Name,
                    Value = channel.Id.ToString()
                });
            }

            return View();
        }
コード例 #10
0
        public ActionResult JsonRegister(RegisterModel model)
        {
            if (ModelState.IsValid)
            {
                if (DoRegister(model))
                {
                    var readModel = new ReadModelService.SimpleTwitterReadModelServiceClient();
                    var user      = readModel.GetUsers().Where(n => n.Username == model.UserName).SingleOrDefault();
                    Session.Add("UserID", user.Id);
                    return(Json(new { success = true }));
                }
            }

            // If we got this far, something failed
            return(Json(new { errors = GetErrorsFromModelState() }));
        }
コード例 #11
0
        public ActionResult Add()
        {
            ViewBag.Channels = new List <SelectListItem>();

            var service = new ReadModelService.SimpleTwitterReadModelServiceClient();

            foreach (var channel in service.GetChannels())
            {
                ViewBag.Channels.Add(new SelectListItem()
                {
                    Text  = channel.Name,
                    Value = channel.Id.ToString()
                });
            }

            return(View());
        }
コード例 #12
0
        public ActionResult Register(RegisterModel model)
        {
            if (ModelState.IsValid)
            {
                if (DoRegister(model))
                {
                    var readModel = new ReadModelService.SimpleTwitterReadModelServiceClient();
                    var user      = readModel.GetUsers().Where(n => n.Username == model.UserName).SingleOrDefault();
                    Session.Add("UserID", user.Id);
                    FormsAuthentication.SetAuthCookie(model.UserName, createPersistentCookie: false);
                    return(RedirectToAction("Index", "Home"));
                }
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
コード例 #13
0
        public static void RequireAdmin(Guid curId)
        {
            var id = curId;
            if (id == null)
            {
                NotAuthorized();
            }
            var readModel = new ReadModelService.SimpleTwitterReadModelServiceClient();
            var user = readModel.GetUsers().Where(n => n.Id == id).SingleOrDefault();
            if (user == null)
            {
                NotAuthorized();
            }

            if (!user.IsAdmin)
            {
                NotAuthorized();
            }
        }
コード例 #14
0
        public static void RequireAdminOrMatch(Guid id, Guid curId)
        {
            if (curId == null || id == null)
            {
                NotAuthorized();
            }
            var readModel = new ReadModelService.SimpleTwitterReadModelServiceClient();
            var user      = readModel.GetUsers().Where(n => n.Id == id).SingleOrDefault();

            if (user == null)
            {
                NotAuthorized();
            }

            if (!(user.IsAdmin || id == curId))
            {
                NotAuthorized();
            }
        }
コード例 #15
0
        public JsonResult JsonLogOn(LogOnModel model, string returnUrl)
        {
            if (ModelState.IsValid)
            {
                if (Authentication.UserValidated(model))
                {
                    var readModel = new ReadModelService.SimpleTwitterReadModelServiceClient();
                    var user = readModel.GetUsers().Where(n => n.Username == model.UserName).SingleOrDefault();

                    Authentication.SetLogin(model, user);

                    return Json(new { success = true, redirect = returnUrl });
                }
                ModelState.AddModelError("", "The user name or password provided is incorrect.");
            }

            // If we got this far, something failed
            return Json(new { errors = GetErrorsFromModelState() });
        }
コード例 #16
0
        public JsonResult JsonLogOn(LogOnModel model, string returnUrl)
        {
            if (ModelState.IsValid)
            {
                if (Authentication.UserValidated(model))
                {
                    var readModel = new ReadModelService.SimpleTwitterReadModelServiceClient();
                    var user      = readModel.GetUsers().Where(n => n.Username == model.UserName).SingleOrDefault();

                    Authentication.SetLogin(model, user);

                    return(Json(new { success = true, redirect = returnUrl }));
                }
                ModelState.AddModelError("", "The user name or password provided is incorrect.");
            }

            // If we got this far, something failed
            return(Json(new { errors = GetErrorsFromModelState() }));
        }
コード例 #17
0
        //
        // GET: /Tweet/
        public ActionResult Index(string channelname="")
        {
            var service = new ReadModelService.SimpleTwitterReadModelServiceClient();
            var query = service.GetTweets();

            var channels = service.GetChannels().Select(channel => new SelectListItem()
                                                                       {
                                                                           Text = channel.Name,
                                                                           Value = channel.Id.ToString()
                                                                       }).ToList();

            ViewBag.Channels = channels;

            ViewBag.GetChannelName = new Func<string, string>(n =>
            {
                var channel = channels.SingleOrDefault(m => m.Value == n);
                if (channel == null || channel.Value == Guid.Empty.ToString())
                {
                    return "Default";
                }

                return channel.Text;
            });

            ViewBag.GetChannelIdByName = new Func<string, Guid>(n =>
            {
                var channel = channels.SingleOrDefault(m => m.Text == n);
                if (channel == null || channel.Value == Guid.Empty.ToString())
                {
                    return Guid.Empty;
                }

                return Guid.Parse(channel.Value);
            });

             if (!string.IsNullOrEmpty(channelname))
            {
                query = query.Where(n => n.Channel == ViewBag.GetChannelIdByName(channelname)).ToArray();
            }

            return View(query);
        }
コード例 #18
0
        //
        // GET: /Tweet/

        public ActionResult Index(string channelname = "")
        {
            var service = new ReadModelService.SimpleTwitterReadModelServiceClient();
            var query   = service.GetTweets();

            var channels = service.GetChannels().Select(channel => new SelectListItem()
            {
                Text  = channel.Name,
                Value = channel.Id.ToString()
            }).ToList();

            ViewBag.Channels = channels;

            ViewBag.GetChannelName = new Func <string, string>(n =>
            {
                var channel = channels.SingleOrDefault(m => m.Value == n);
                if (channel == null || channel.Value == Guid.Empty.ToString())
                {
                    return("Default");
                }

                return(channel.Text);
            });

            ViewBag.GetChannelIdByName = new Func <string, Guid>(n =>
            {
                var channel = channels.SingleOrDefault(m => m.Text == n);
                if (channel == null || channel.Value == Guid.Empty.ToString())
                {
                    return(Guid.Empty);
                }

                return(Guid.Parse(channel.Value));
            });

            if (!string.IsNullOrEmpty(channelname))
            {
                query = query.Where(n => n.Channel == ViewBag.GetChannelIdByName(channelname)).ToArray();
            }

            return(View(query));
        }
コード例 #19
0
        public ActionResult LogOn(LogOnModel model, string returnUrl)
        {
            if (ModelState.IsValid)
            {
                if (Authentication.UserValidated(model))
                {
                    var readModel = new ReadModelService.SimpleTwitterReadModelServiceClient();
                    var user      = readModel.GetUsers().Where(n => n.Username == model.UserName).SingleOrDefault();

                    Authentication.SetLogin(model, user);

                    return(Url.IsLocalUrl(returnUrl)
                               ? (ActionResult)Redirect(returnUrl)
                               : RedirectToAction("Index", "Home"));
                }
                ModelState.AddModelError("", "The user name or password provided is incorrect.");
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
コード例 #20
0
        public static bool UserValidated(LogOnModel model)
        {
            var service = new Commanding.SimpleTwitterCommandServiceClient();
            var readModel = new ReadModelService.SimpleTwitterReadModelServiceClient();
            var user = readModel.GetUsers().Where(n => n.Username == model.UserName).SingleOrDefault();
            if (user == null)
            {
                return false;
            }

            service.ValidateUser(new ValidateUserCommand()
            {
                UserID = user.Id,
                Username = model.UserName,
                Password = model.Password
            });

            bool validated = readModel.UserValidated(user.Id);

            return validated;
        }
コード例 #21
0
        public static bool UserValidated(LogOnModel model)
        {
            var service   = new Commanding.SimpleTwitterCommandServiceClient();
            var readModel = new ReadModelService.SimpleTwitterReadModelServiceClient();
            var user      = readModel.GetUsers().Where(n => n.Username == model.UserName).SingleOrDefault();

            if (user == null)
            {
                return(false);
            }

            service.ValidateUser(new ValidateUserCommand()
            {
                UserID   = user.Id,
                Username = model.UserName,
                Password = model.Password
            });

            bool validated = readModel.UserValidated(user.Id);

            return(validated);
        }
コード例 #22
0
        public ActionResult Edit(string userId="")
        {
            ViewBag.EditableProperties = new List<ReadModel.UserProperty>()
            {
                new ReadModel.UserProperty("FirstName", null, "text", "text"),
                new ReadModel.UserProperty("LastName", null, "text", "text"),
                new ReadModel.UserProperty("Email", null, "text", "email"),
                new ReadModel.UserProperty("IsAdmin", null, "checkbox", null)
            };

            var idGuid = Guid.Empty;

            if (!Guid.TryParse(userId, out idGuid))
            {
                RedirectToAction("Index");
            }

            var service = new ReadModelService.SimpleTwitterReadModelServiceClient();
            var query = service.GetUsers().SingleOrDefault(n => n.Id == idGuid);

            return View(query);
        }
コード例 #23
0
        public ActionResult Validate(string username, string submittedPassword)
        {
            var service   = new Commanding.SimpleTwitterCommandServiceClient();
            var readModel = new ReadModelService.SimpleTwitterReadModelServiceClient();

            var user = readModel.GetUsers().Where(n => n.Username == username).SingleOrDefault();

            if (user == null)
            {
                return(View(false));
            }

            service.ValidateUser(new Commands.ValidateUserCommand()
            {
                UserID   = user.Id,
                Username = username,
                Password = submittedPassword
            });

            bool result = readModel.UserValidated(user.Id);

            return(View(result));
        }
コード例 #24
0
        public ActionResult LogOn(LogOnModel model, string returnUrl)
        {
            if (ModelState.IsValid)
            {
                if (Authentication.UserValidated(model))
                {
                    var readModel = new ReadModelService.SimpleTwitterReadModelServiceClient();
                    var user = readModel.GetUsers().Where(n => n.Username == model.UserName).SingleOrDefault();

                    Authentication.SetLogin(model, user);

                    return Url.IsLocalUrl(returnUrl)
                               ? (ActionResult) Redirect(returnUrl)
                               : RedirectToAction("Index", "Home");
                }
                ModelState.AddModelError("", "The user name or password provided is incorrect.");
            }

            // If we got this far, something failed, redisplay form
            return View(model);
        }
コード例 #25
0
        bool DoRegister(RegisterModel model)
        {
            var service = new Commanding.SimpleTwitterCommandServiceClient();
            var readModel = new ReadModelService.SimpleTwitterReadModelServiceClient();
            service.CreateUser(new CreateUserCommand()
            {
                Username = model.UserName
            });

            var user = readModel.GetUsers().Where(n => n.Username == model.UserName).SingleOrDefault();

            if (user == null)
            {
                ModelState.AddModelError("", "Command failed.");
                return false;
            }

            service.SetUserPassword(new SetUserPasswordCommand()
            {
                UserID = user.Id,
                Password = model.Password
            });

            service.SetUserProperty(new SetUserPropertyCommand()
            {
                UserID = user.Id,
                Name = "Email",
                Value = model.Email
            });

            FormsAuthentication.SetAuthCookie(model.UserName, createPersistentCookie: false);
            return true;
        }
コード例 #26
0
        //
        // GET: /User/
        public ActionResult Index(string id)
        {
            var service = new ReadModelService.SimpleTwitterReadModelServiceClient();
            var query = service.GetUsers();

            if (id != null)
            {
                query = query.Where(n => n.Id.ToString() == id).ToArray();
            }

            return View(query);
        }
コード例 #27
0
        public ActionResult Validate(string username, string submittedPassword)
        {
            var service = new Commanding.SimpleTwitterCommandServiceClient();
            var readModel = new ReadModelService.SimpleTwitterReadModelServiceClient();

            var user = readModel.GetUsers().Where(n => n.Username == username).SingleOrDefault();

            if (user == null)
            {
                return View(false);
            }

            service.ValidateUser(new Commands.ValidateUserCommand()
            {
                UserID = user.Id,
                Username = username,
                Password = submittedPassword
            });

            bool result = readModel.UserValidated(user.Id);

            return View(result);
        }
コード例 #28
0
        public ActionResult Register(RegisterModel model)
        {
            if (ModelState.IsValid)
            {
                if (DoRegister(model))
                {
                    var readModel = new ReadModelService.SimpleTwitterReadModelServiceClient();
                    var user = readModel.GetUsers().Where(n => n.Username == model.UserName).SingleOrDefault();
                    Session.Add("UserID", user.Id);
                    FormsAuthentication.SetAuthCookie(model.UserName, createPersistentCookie: false);
                    return RedirectToAction("Index", "Home");
                }
            }

            // If we got this far, something failed, redisplay form
            return View(model);
        }