Exemplo n.º 1
0
        // POST /api/team/5
        public HttpResponseMessage Post(ServiceModel.AddTeamViewModel addTeamViewModel)
        {
            if (!ModelState.IsValid)
            {
                throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest, ModelState.ToJson().ToString()));
            }

            var existingTeam = context.GetAll <DomainModel.Team>()
                               .FirstOrDefault(u => u.Name.Equals(addTeamViewModel.Name));

            if (existingTeam != null)
            {
                throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest, "Team name already in use"));
            }


            var teamCreator = context.GetAll <DomainModel.User>()
                              .FirstOrDefault(u => u.Id == addTeamViewModel.CreatedById);

            if (teamCreator == null)
            {
                throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest, "Invalid Team Owner Specified"));
            }

            var team = new DomainModel.Team(addTeamViewModel.Name, teamCreator);

            team.IsOpen = addTeamViewModel.IsPublic;
            context.Add(team);
            context.SaveChanges();

            return(ResourceOkResponse(team.MapToBasicServiceModel()));
        }
Exemplo n.º 2
0
        public Thing(Team team, User owner)
            : this()
        {
            this.DateCreated = DateTime.Now;
            this.Status = ThingStatus.InProgress;
            this.Team = team;
            this.TeamId = team.Id;

            this.SetOwner(owner);
        }
Exemplo n.º 3
0
        public virtual MailMessage DeniedTeam(User user, Team team)
        {
            var mailMessage = new MailMessage { Subject = "TeamThing - Team Access Denied" };

            mailMessage.To.Add(user.EmailAddress);
            mailMessage.From = new MailAddress(fromAddress);
            //ViewBag.Data = someObject;

            ViewData.Model = new TeamAccessChanged { Team = team };
            PopulateBody(mailMessage, viewName: "DeniedTeam");

            return mailMessage;
        }
Exemplo n.º 4
0
 public static ServiceModel.TeamBasic MapToBasicServiceModel(this DomainModel.Team t)
 {
     if (t == null)
     {
         return(null);
     }
     return(new ServiceModel.TeamBasic()
     {
         Id = t.Id,
         Name = t.Name,
         OwnerId = t.OwnerId,
         IsPublic = t.IsOpen,
         ImagePath = t.ImagePath ?? "/images/GenericUserImage.gif",
         Administrators = t.TeamMembers.Where(tm => tm.Role == DomainModel.TeamUserRole.Administrator).Select(tm => tm.UserId).ToArray()
     });
 }
Exemplo n.º 5
0
 public static ServiceModel.Team MapToServiceModel(this DomainModel.Team t)
 {
     if (t == null)
     {
         return(null);
     }
     return(new ServiceModel.Team()
     {
         Id = t.Id,
         Name = t.Name,
         IsPublic = t.IsOpen,
         ImagePath = t.ImagePath ?? "/images/GenericUserImage.gif",
         TeamMembers = t.Members.Where(tm => tm.Status == DomainModel.TeamUserStatus.Approved).Select(MapToBasicServiceModel).ToList(),
         PendingTeamMembers = t.Members.Where(tm => tm.Status == DomainModel.TeamUserStatus.Pending).Select(MapToBasicServiceModel).ToList(),
         Administrators = t.Members.Where(tm => tm.Role == DomainModel.TeamUserRole.Administrator).Select(tm => tm.UserId).ToArray(),
         Owner = t.Owner.MapToBasicServiceModel()
     });
 }
Exemplo n.º 6
0
        public HttpResponseMessage Post(ServiceModel.AddTeamViewModel addTeamViewModel)
        {
            if (!ModelState.IsValid)
            {
                return(new HttpResponseMessage <JsonValue>(ModelState.ToJson(), HttpStatusCode.BadRequest));
            }

            var existingTeam = context.GetAll <DomainModel.Team>()
                               .FirstOrDefault(u => u.Name.Equals(addTeamViewModel.Name));

            if (existingTeam != null)
            {
                ModelState.AddModelError("", "Team name already in use");
                return(new HttpResponseMessage <JsonValue>(ModelState.ToJson(), HttpStatusCode.BadRequest));
            }

            var teamCreator = context.GetAll <DomainModel.User>()
                              .FirstOrDefault(u => u.Id == addTeamViewModel.CreatedById);

            if (teamCreator == null)
            {
                ModelState.AddModelError("", "Invalid Team Owner Specified");
                return(new HttpResponseMessage <JsonValue>(ModelState.ToJson(), HttpStatusCode.BadRequest));
            }

            var team = new DomainModel.Team(addTeamViewModel.Name, teamCreator);

            team.IsOpen = addTeamViewModel.IsPublic;
            context.Add(team);
            context.SaveChanges();

            var sTeam    = team.MapToBasicServiceModel();
            var response = new HttpResponseMessage <ServiceModel.TeamBasic>(sTeam, HttpStatusCode.Created);

            response.Headers.Location = new Uri(Request.RequestUri, "/api/team/" + sTeam.Id.ToString());
            return(response);
        }
Exemplo n.º 7
0
        private static void TestContext()
        {
            Console.WriteLine("Running Tests");

            User newUser;
            User newUser2;
            Team newTeam;
            Thing thing;
            using (var context = new TeamThingContext())
            {
                //add some new data
                newUser = new User("*****@*****.**");
                newUser.FirstName = "Josh";
                newUser.LastName = "Holt";
                context.Add(newUser);
                context.SaveChanges();

                //add some new data
                newUser2 = new User("*****@*****.**");
                newUser2.FirstName = "Josh2";
                newUser2.LastName = "Holt2";
                context.Add(newUser2);
                context.SaveChanges();

                newTeam = new Team("Closed Team", newUser, false);
                newTeam.TeamMembers.Add(new TeamUser(newTeam, newUser2));
                context.Add(newTeam);
                context.SaveChanges();

                thing = new Thing(newTeam, newUser);
                thing.Description = "Test Thing";
                thing.AssignedTo.Add(new UserThing(thing, newUser2, newUser));
                thing.AssignedTo.Add(new UserThing(thing, newUser, newUser));

                context.Add(thing);
                context.SaveChanges();
             }
            using (var context = new TeamThingContext())
            {
                newUser = context.GetAll<User>().FirstOrDefault(p => p.EmailAddress == newUser.EmailAddress);
                newUser2 = context.GetAll<User>().FirstOrDefault(p => p.EmailAddress == newUser2.EmailAddress);
                newTeam = context.GetAll<Team>().FirstOrDefault(p => p.Name == newTeam.Name);
                thing = context.GetAll<Thing>().FirstOrDefault(p => p.Description == thing.Description);
                ////recall the saved items
                //IProduct retrievedProduct = context.Products.FirstOrDefault(p => p.Name == newProduct.Name);
                //ICategory retrievedCategory = context.Categories.FirstOrDefault(p => p.Name == newCategory.Name);
                //Debug.Assert(retrievedProduct != null);
                //Debug.Assert(retrievedCategory!= null);
                //Debug.Assert(retrievedProduct.Category == retrievedCategory);
                //Debug.Assert(retrievedCategory.Products.Contains(retrievedProduct));
                Debug.Assert(newUser != null);
                Debug.Assert(newUser2 != null);
                Debug.Assert(newTeam != null);
                Debug.Assert(thing != null);

                Debug.Assert(thing.Owner != null);
                Debug.Assert(newTeam.Owner != null);

                Debug.Assert(newUser.Teams.Count > 0);

                Debug.Assert(newUser2.Teams.Count > 0);
                Debug.Assert(newUser2.Things.Count > 0);

                Debug.Assert(newTeam.TeamMembers.Count > 0);
                //Debug.Assert(newTeam.TeamThings.Count > 0);

                Debug.Assert(thing.AssignedTo.Count > 0);

            //        //clean up
            //        //Category is marked as dependent, so it will be removed automatically with the product
                context.Delete(thing);
                context.Delete(newTeam);
                context.Delete(newUser);
                context.Delete(newUser2);

                context.SaveChanges();
            }

            Console.WriteLine("All Tests Pass!");
        }
Exemplo n.º 8
0
        private static void TestContext()
        {
            Console.WriteLine("Running Tests");

            User newUser;
            User newUser2;
            Team newTeam;
            Thing thing;
            using (var context = new TeamThingContext())
            {
                //add some new data
                newUser = new User("UNIT TEST USER");
                newUser.FirstName = "Josh";
                newUser.LastName = "Holt";
                context.Add(newUser);
                context.SaveChanges();

                //add some new data
                newUser2 = new User("UNIT TEST USER 2");
                newUser2.FirstName = "Josh2";
                newUser2.LastName = "Holt2";
                context.Add(newUser2);
                context.SaveChanges();

                newTeam = new Team("UNIT TEST TEAM", newUser, false);
                newTeam.Members.Add(new TeamUser(newTeam, newUser2));
                context.Add(newTeam);
                context.SaveChanges();

                thing = new Thing(newTeam, newUser);
                thing.Description = "UNIT TEST THING";
                thing.AssignedTo.Add(new UserThing(thing, newUser2, newUser));
                thing.AssignedTo.Add(new UserThing(thing, newUser, newUser));

                context.Add(thing);
                context.SaveChanges();

                thing.UpdateStatus(newUser2, ThingStatus.Delayed);
                thing.Complete(newUser2);

                context.SaveChanges();
            }

            using (var context = new TeamThingContext())
            {
                newUser = context.GetAll<User>().FirstOrDefault(p => p.EmailAddress == newUser.EmailAddress);
                newUser2 = context.GetAll<User>().FirstOrDefault(p => p.EmailAddress == newUser2.EmailAddress);
                newTeam = context.GetAll<Team>().FirstOrDefault(p => p.Name == newTeam.Name);
                thing = context.GetAll<Thing>().FirstOrDefault(p => p.Description == thing.Description);

                Debug.Assert(newUser != null);
                Debug.Assert(newUser2 != null);
                Debug.Assert(newTeam != null);
                Debug.Assert(thing != null);

                Debug.Assert(thing.Owner != null);
                Debug.Assert(newTeam.Owner != null);

                Debug.Assert(newUser.Teams.Count > 0);

                Debug.Assert(newUser2.Teams.Count > 0);
                Debug.Assert(newUser2.Things.Count > 0);

                Debug.Assert(newTeam.Members.Count > 0);
                //Debug.Assert(newTeam.TeamThings.Count > 0);

                Debug.Assert(thing.AssignedTo.Count > 0);

                Debug.Assert(thing.History.Count == 2);

                Debug.Assert(thing.History[0].EditedBy != null);
                Debug.Assert(thing.History[0].EditedByUserId != 0);

                Debug.Assert(thing.History[0].Thing == thing);
                Debug.Assert(thing.History[0].ThingId == thing.Id);

                //        //clean up
                //        //Category is marked as dependent, so it will be removed automatically with the product
                context.Delete(thing);
                context.Delete(newTeam);
                context.Delete(newUser);
                context.Delete(newUser2);

                context.SaveChanges();
            }

            Console.WriteLine("All Tests Pass!");
        }
Exemplo n.º 9
0
        public virtual MailMessage InvitedToTeam(User sendTo, User inviter, Team team)
        {
            var mailMessage = new MailMessage { Subject = "TeamThing - Invited to Join Team" };

            mailMessage.To.Add(sendTo.EmailAddress);
            mailMessage.From = new MailAddress(fromAddress);
            //ViewBag.Data = someObject;

            ViewData.Model = new TeamAccessChanged { Team = team };
            PopulateBody(mailMessage, viewName: "InvitedToTeam");

            return mailMessage;
        }
Exemplo n.º 10
0
        // POST /api/team/5
        public HttpResponseMessage Post(ServiceModel.AddTeamViewModel addTeamViewModel)
        {
            if (!ModelState.IsValid) { throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest, ModelState.ToJson().ToString())); }

            var existingTeam = context.GetAll<DomainModel.Team>()
                                      .FirstOrDefault(u => u.Name.Equals(addTeamViewModel.Name));

            if (existingTeam != null) { throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest, "Team name already in use")); }

            var teamCreator = context.GetAll<DomainModel.User>()
                                     .FirstOrDefault(u => u.Id == addTeamViewModel.CreatedById);

            if (teamCreator == null) { throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest, "Invalid Team Owner Specified")); }

            var team = new DomainModel.Team(addTeamViewModel.Name, teamCreator);
            team.IsOpen = addTeamViewModel.IsPublic;
            context.Add(team);
            context.SaveChanges();

            return ResourceOkResponse(team.MapToBasicServiceModel());
        }