public static void AddGroups()
 {
     var context = new SocialNetworkContext();
     var teamGroup = new Group()
     {
         Name = "Team Quince",
         Description = "A great team",
         CreatedOn = DateTime.Now
     };
     var blagoGroup = new Group()
     {
         Name = "Blagoevgrad",
         Description = "A nice city",
         CreatedOn = DateTime.Now
     };
     context.Groups.Add(teamGroup);
     context.Groups.Add(blagoGroup);
     context.SaveChanges();
 }
        public static GroupViewModel ConvertTo(Group group, ApplicationUser currentUser)
        {
            GroupViewModel viewModel = new GroupViewModel
            {
                Id = group.Id,
                Name = group.Name,
                CoverImageData = group.CoverImageData,
                CreatedOn = group.CreatedOn,
                Description = group.Description,
                Admins = group.Admins
                    .AsQueryable()
                    .Select(UserViewModelMinified.Create(currentUser)),
                Members = group.Members
                    .AsQueryable()
                    .Select(UserViewModelMinified.Create(currentUser)),
                Posts = group.Posts
                    .AsQueryable()
                    .Select(GroupPostViewModel.Create(currentUser))
            };

            return viewModel;
        }
        public IHttpActionResult CreateGroup(CreateGroupBindingModel bindingModel)
        {
            if (!this.ModelState.IsValid)
            {
                return this.BadRequest(this.ModelState);
            }

            if (bindingModel == null)
            {
                return this.BadRequest("Invalid data");
            }

            var currentUserId = this.UserIdProvider.GetUserId();
            var currentUser = this.Data.Users.Find(currentUserId);

            Group group = new Group
            {
                Name = bindingModel.Name,
                Description = bindingModel.Description,
                CoverImageData = null,
                CreatedOn = DateTime.Now
            };

            if (bindingModel.CoverImageData != null && this.IsValidBase64Format(bindingModel.CoverImageData))
            {
                group.CoverImageData = string.Format(
                    "{0}{1}", "data:image/jpg;base64,", bindingModel.CoverImageData);
            }

            group.Members.Add(currentUser);
            group.Admins.Add(currentUser);
            currentUser.Groups.Add(group);

            this.Data.Groups.Add(group);
            this.Data.SaveChanges();

            return this.Ok();
        }
 public static object CreateGroupPreview(ApplicationUser user, Group group)
 {
     return new
     {
         Id = group.Id,
         Name = group.Name,
         Description = group.Description,
         WallPicture = group.WallPicture,
         Owner = new
         {
             Name = group.Owner.Name,
             Username = group.Owner.UserName,
             Id = group.Owner.Id
         },
         Members = group.Members.Select(m => new
         {
             Name = m.Name,
             Username = m.UserName,
             Id = m.Id
         }),
         IsMember = group.Members.Any(m => m == user),
         IsOwner = group.Owner == user
     };
 }