public CreateConferenceResponse CreateConference(CreateConferenceRequest request, ClaimsPrincipal claim)
        {
            var response = new CreateConferenceResponse();
            var user     = context.Users.FirstOrDefault(n => n.UserName == claim.Identity.Name);

            if (user == null)
            {
                response.AddNoPermissionError("You are not allowed to create a conference.");
                return(response);
            }

            var project = context.Projects.FirstOrDefault(n => n.ProjectId == request.ProjectId);

            if (project == null)
            {
                response.AddInvalidDataError("The Project was not found.", nameof(request.ProjectId));
                return(response);
            }

            // Create the conference
            var conference = new Conference()
            {
                Name              = request.Name,
                FullName          = request.FullName,
                ConferenceShort   = request.ConferenceShort,
                ConferenceProject = project,
                CreationDate      = DateTime.UtcNow,
                CreationUser      = user,
                StartDate         = request.StartDate,
                EndDate           = request.EndDate
            };

            var easyId = Util.IdGenerator.AsPrimaryKey(request.ConferenceShort);

            if (context.Conferences.All(n => n.ConferenceId != easyId))
            {
                conference.ConferenceId = easyId;
            }

            //if (DateTime.TryParse(request.StartDate, out DateTime start))
            //    conference.StartDate = start;

            //if (DateTime.TryParse(request.EndDate, out DateTime end))
            //    conference.EndDate = end;

            context.Conferences.Add(conference);


            CreateDefaultConferenceAuths(conference);

            context.SaveChanges();

            response.ConferenceId = conference.ConferenceId;

            return(response);
        }
Exemple #2
0
        public static CreateConferenceResponse Unmarshall(UnmarshallerContext context)
        {
            CreateConferenceResponse createConferenceResponse = new CreateConferenceResponse();

            createConferenceResponse.HttpResponse = context.HttpResponse;
            createConferenceResponse.RequestId    = context.StringValue("CreateConference.RequestId");
            createConferenceResponse.ConferenceId = context.StringValue("CreateConference.ConferenceId");

            CreateConferenceResponse.CreateConference_AuthInfo authInfo = new CreateConferenceResponse.CreateConference_AuthInfo();
            authInfo.Key       = context.StringValue("CreateConference.AuthInfo.Key");
            authInfo.Nonce     = context.StringValue("CreateConference.AuthInfo.Nonce");
            authInfo.Timestamp = context.IntegerValue("CreateConference.AuthInfo.Timestamp");
            createConferenceResponse.AuthInfo = authInfo;

            return(createConferenceResponse);
        }