예제 #1
0
        public async Task <IActionResult> AddMemberToDivisionAsync(ClanId clanId, DivisionId divisionId, MemberId memberId)
        {
            var userId = HttpContext.GetUserId();

            var clan = await _clanService.FindClanAsync(clanId);

            if (clan == null)
            {
                return(this.NotFound("Clan does not exist."));
            }

            var result = await _clanService.AddMemberToDivisionAsync(
                clan,
                userId,
                divisionId,
                memberId);

            if (result.IsValid)
            {
                return(this.Ok("Division created."));
            }

            result.AddToModelState(ModelState);

            return(this.BadRequest(new ValidationProblemDetails(ModelState)));
        }
예제 #2
0
        public async Task <IActionResult> FetchDivisionMembersAsync(DivisionId divisionId)
        {
            var members = await _clanService.FetchDivisionMembersAsync(divisionId);

            if (!members.Any())
            {
                return(this.NoContent());
            }

            return(this.Ok(_mapper.Map <IEnumerable <MemberDto> >(members)));
        }
예제 #3
0
        public async Task <IReadOnlyCollection <Member> > FetchDivisionMembersAsync(DivisionId divisionId)
        {
            var division = await _clanRepository.FindDivisionAsync(divisionId);

            if (division == null)
            {
                return(new List <Member>());
            }

            return(division.Members.ToList());
        }
예제 #4
0
 protected void OnDivisionSelected(object sender, DirectEventArgs e)
 {
     if (DivisionId != null)
     {
         if (Session["DivisionId"] != null && !DivisionId.Equals(Session["DivisionId"].ToString()))
         {
             cboxRequest.Clear();
             cboxRequest.EmptyText       = "Select Request";
             pnlTemplateGrid.Hidden      = true;
             cntLabel.Hidden             = true;
             pnlAddTemplateButton.Hidden = true;
         }
         Session["DivisionId"]   = DivisionId;
         Session["DivisionName"] = cboxDivision.SelectedItem.Text;
         GetAndBindRequests(DivisionId);
     }
 }
예제 #5
0
        public async Task <DomainValidationResult <Member> > AddMemberToDivisionAsync(
            Clan clan,
            UserId userId,
            DivisionId divisionId,
            MemberId memberId
            )
        {
            if (!clan.MemberIsOwner(userId))
            {
                return(DomainValidationResult <Member> .Failure($"The user ({userId}) isn't the clan owner."));
            }

            clan.AddMemberToDivision(divisionId, memberId);
            await _clanRepository.UnitOfWork.CommitAsync();

            return(new DomainValidationResult <Member>());
        }
예제 #6
0
        public string ConvertToSearch()
        {
            var cc = DbUtil.Db.ScratchPadCondition();

            cc.Reset();
            var c = cc.AddNewClause(QueryType.OrgSearchMember, CompareType.Equal, "1,True");

            if (Name.HasValue())
            {
                c.OrgName = Name;
            }
            if (ProgramId != 0)
            {
                c.Program = ProgramId.ToString();
            }
            if (DivisionId != 0)
            {
                c.Division = DivisionId.ToString();
            }
            if (StatusId != 0)
            {
                c.OrgStatus = StatusId.ToString();
            }
            if (TypeId != 0)
            {
                c.OrgType2 = TypeId ?? 0;
            }
            if (CampusId != 0)
            {
                c.Campus = CampusId.ToString();
            }
            if (ScheduleId != 0)
            {
                c.Schedule = ScheduleId.ToString();
            }
            if (OnlineReg != 0)
            {
                c.OnlineReg = OnlineReg.ToString();
            }

            cc.Save(DbUtil.Db);
            return("/Query/" + cc.Id);
        }
예제 #7
0
        public async Task <DomainValidationResult <Division> > UpdateDivisionAsync(
            Clan clan,
            UserId userId,
            DivisionId divisionId,
            string name,
            string description
            )
        {
            if (!clan.MemberIsOwner(userId))
            {
                return(DomainValidationResult <Division> .Failure($"The user ({userId}) isn't the clan owner."));
            }

            clan.UpdateDivision(divisionId, name, description);

            await _clanRepository.UnitOfWork.CommitAsync();

            return(new DomainValidationResult <Division>());
        }
예제 #8
0
 private async Task <HttpResponseMessage> ExecuteAsync(ClanId clanId, DivisionId divisionId, UpdateDivisionRequest request)
 {
     return(await _httpClient.PostAsJsonAsync($"api/clans/{clanId}/divisions/{divisionId}", request));
 }
예제 #9
0
        public async Task <DomainValidationResult <Division> > DeleteDivisionAsync(Clan clan, UserId userId, DivisionId divisionId)
        {
            var result = new DomainValidationResult <Division>();

            if (!clan.MemberIsOwner(userId))
            {
                result.AddFailedPreconditionError($"The user ({userId}) isn't the clan owner.");
            }

            if (result.IsValid)
            {
                var division = clan.RemoveDivision(divisionId);

                await _clanRepository.UnitOfWork.CommitAsync();

                return(division);
            }

            return(result);
        }
예제 #10
0
 public async Task <Division?> FindDivisionAsync(DivisionId divisionId)
 {
     return(await _context.Divisions.Include(clan => clan.Members).AsExpandable().SingleOrDefaultAsync(division => division.Id == divisionId));
 }
예제 #11
0
 private async Task <HttpResponseMessage> ExecuteAsync(ClanId clanId, DivisionId divisionId)
 {
     return(await _httpClient.DeleteAsync($"api/clans/{clanId}/divisions/{divisionId}"));
 }
예제 #12
0
        /* Methods */

        /// <summary>
        /// Computes a compound ID for the specified sub-IDs.
        /// </summary>
        /// <param name="corporationId">
        /// The ID of the corporation.
        /// </param>
        /// <param name="divisionId">
        /// The ID of the division.
        /// </param>
        /// <returns>
        /// A compound ID combining the two sub-IDs.
        /// </returns>
        public static IConvertible CreateCacheKey(long corporationId, DivisionId divisionId)
        {
            return(EveCache.CreateCompoundCacheKey(corporationId, divisionId));
        }
예제 #13
0
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.Entity <Clan>(
                builder =>
            {
                builder.ToTable("Clan");

                builder.Property(clan => clan.Id).HasConversion(clanId => clanId.ToGuid(), value => ClanId.FromGuid(value)).IsRequired().ValueGeneratedNever();

                builder.Property(clan => clan.Name).IsRequired();

                builder.Property(clan => clan.Summary).IsRequired(false);

                builder.Property(clan => clan.OwnerId).HasConversion(invitationId => invitationId.ToGuid(), value => UserId.FromGuid(value)).IsRequired();

                builder.Ignore(clan => clan.Deleted);

                builder.HasMany(clan => clan.Members).WithOne().HasForeignKey(member => member.ClanId);

                builder.HasKey(clan => clan.Id);
            });

            modelBuilder.Entity <Clan>(
                builder =>
            {
                builder.ToTable("Clan");

                builder.Property(clan => clan.Id).HasConversion(clanId => clanId.ToGuid(), value => ClanId.FromGuid(value)).IsRequired().ValueGeneratedNever();

                builder.Property(clan => clan.Name).IsRequired();

                builder.Property(clan => clan.Summary).IsRequired(false);

                builder.Property(clan => clan.OwnerId).HasConversion(invitationId => invitationId.ToGuid(), value => UserId.FromGuid(value)).IsRequired();

                builder.HasMany(clan => clan.Members).WithOne().HasForeignKey(member => member.ClanId);

                builder.HasKey(clan => clan.Id);
            });

            modelBuilder.Entity <Member>(
                builder =>
            {
                builder.ToTable("Member");

                builder.Property(member => member.Id).HasConversion(memberId => memberId.ToGuid(), value => MemberId.FromGuid(value)).IsRequired().ValueGeneratedNever();

                builder.Property(member => member.UserId).HasConversion(userId => userId.ToGuid(), value => UserId.FromGuid(value)).IsRequired();
                builder.Property(member => member.ClanId).HasConversion(clanId => clanId.ToGuid(), value => ClanId.FromGuid(value)).IsRequired();

                builder.HasKey(member => member.Id);
            });

            modelBuilder.Entity <Candidature>(
                builder =>
            {
                builder.ToTable("Candidature");

                builder.Property(candidature => candidature.Id)
                .HasConversion(candidatureId => candidatureId.ToGuid(), value => CandidatureId.FromGuid(value))
                .IsRequired().ValueGeneratedNever();

                builder.Property(candidature => candidature.UserId).HasConversion(userId => userId.ToGuid(), value => UserId.FromGuid(value)).IsRequired();
                builder.Property(candidature => candidature.ClanId).HasConversion(clanId => clanId.ToGuid(), value => ClanId.FromGuid(value)).IsRequired();
                builder.HasKey(candidature => candidature.Id);
            });

            modelBuilder.Entity <Invitation>(
                builder =>
            {
                builder.ToTable("Invitation");

                builder.Property(invitation => invitation.Id)
                .HasConversion(invitationId => invitationId.ToGuid(), value => InvitationId.FromGuid(value))
                .IsRequired().ValueGeneratedNever();

                builder.Property(invitation => invitation.UserId).HasConversion(userId => userId.ToGuid(), value => UserId.FromGuid(value)).IsRequired();
                builder.Property(invitation => invitation.ClanId).HasConversion(clanId => clanId.ToGuid(), value => ClanId.FromGuid(value)).IsRequired();
                builder.HasKey(invitation => invitation.Id);
            });

            modelBuilder.Entity <Division>(
                builder =>
            {
                builder.ToTable("Division");

                builder.Property(division => division.Id)
                .HasConversion(divisionId => divisionId.ToGuid(), value => DivisionId.FromGuid(value))
                .IsRequired().ValueGeneratedNever();

                builder.Property(division => division.Name).IsRequired();

                builder.Property(division => division.Description).IsRequired(false);

                builder.Property(division => division.ClanId).HasConversion(clanId => clanId.ToGuid(), value => ClanId.FromGuid(value)).IsRequired();

                builder.Ignore(division => division.Members);

                builder.HasKey(division => division.Id);
            });
        }