public IActionResult CreateMeetings([FromBody] CreateMeetingDto createMeetingDto)
        {
            if (createMeetingDto.Quantity == "one")
            {
                var meeting = _mapper.Map <Meetings>(createMeetingDto);
                _context.Meetings.Add(meeting);
                _context.SaveChanges();
            }
            else if (createMeetingDto.Quantity == "all")
            {
                var offices = _context.Offices;

                foreach (Offices o in offices)
                {
                    var meeting = _mapper.Map <Meetings>(createMeetingDto);
                    meeting.OfficeId = Convert.ToInt32(o.Id);
                    _context.Meetings.Add(meeting);
                }
                _context.SaveChanges();
            }
            else
            {
                throw new AppException("Offices quantity is required");
            }
            return(Ok());
        }
        public IActionResult AddMeeting([FromBody] CreateMeetingDto meetingDto)
        {
            if (meetingDto == null || !ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var meetingTitleExists = _db.Meetings.Any(x => x.Title == meetingDto.Title);

            if (meetingTitleExists)
            {
                ModelState.AddModelError("MeetingTitle", "عنوان قبلا استفاده شده است.");
                return(StatusCode(409, ModelState));
            }

            var meeting = _mapper.Map <Meeting>(meetingDto);

            try
            {
                _db.Meetings.Add(meeting);
                _db.SaveChanges();
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);
                return(StatusCode(500, ModelState));
            }

            var meetingResult = _mapper.Map <MeetingDto>(meeting);

            return(CreatedAtRoute("GetMeeting", new { meetingId = meeting.Id }, meetingResult));
        }
Exemple #3
0
        public async Task <IActionResult> Create([FromQuery] CreateMeetingDto dto, [FromBody] Modules modules)
        {
            var existingMeeting = await _appDbContext.Meetings.FirstOrDefaultAsync(m => m.Running && m.MeetingID == dto.MeetingId);

            if (existingMeeting != null)
            {
                var earlyResponse = _mapper.Map <CreateResponse>(existingMeeting);
                earlyResponse.ReturnCode = "SUCCESS";
                earlyResponse.MessageKey = "duplicateWarning";
                earlyResponse.Message    = "This conference was already in existence and may currently be in progress.";
                return(Ok(earlyResponse));
            }

            var server = await GetAvailableServer();

            if (server == null)
            {
                return(Ok(new BaseBBBResponse
                {
                    ReturnCode = "FAILED",
                    MessageKey = "unavailableServer",
                    Message = "[BigBlueBalancer] Unavailble server"
                }));
            }

            var request  = _mapper.Map <CreateRequest>(dto);
            var response = await _bbbClient.Create(server.Url, server.Secret, request, modules);

            if (response.ReturnCode == "SUCCESS")
            {
                var meeting = _mapper.Map <Entities.Meeting>(response);
                meeting.Running = true;
                server.Meetings.Add(meeting);
                await _appDbContext.SaveChangesAsync();
            }

            return(Ok(response));
        }
Exemple #4
0
        public virtual async Task <OperationResult> CreateNewMeeting([FromBody] CreateMeetingDto input)
        {
            try
            {
                MeetingDTOInput meeting = input.Build();

                var trace = new StringBuilder();
                var ac    = this.GetAdminProvider();
                //// TRICK: new don't care about this settings - cause there is a check UseUserFolder==false
                //bool useLmsUserEmailForSearch = true;
                var useLmsUserEmailForSearch = !string.IsNullOrEmpty(input.ApiLtiParam.lis_person_contact_email_primary);
                var fb = new MeetingFolderBuilder((LmsCompany)LmsCompany, ac, useLmsUserEmailForSearch, LmsMeetingType.Meeting);

                /*
                 * // tool_consumer_info_product_family_code : canvas
                 * // https://esynctraining.instructure.com/courses/231/external_tools/84
                 * var apiTest = input.ApiLtiParam;
                 * apiTest.tool_consumer_info_product_family_code = "canvas";
                 * apiTest.course = "231";
                 * apiTest.course_name= "Regression";
                 * //apiTest.context_label = "Regression";
                 * //apiTest.context_title = "Regression";
                 *
                 * apiTest.lms_user_login = "******"; // custom_canvas_user_login_id
                 * apiTest.lis_person_contact_email_primary = "*****@*****.**";
                 *
                 * apiTest.referer = "https://esynctraining.instructure.com/courses/231/external_tools/84";
                 * apiTest.lms_user_id = "1"; // custom_canvas_user_id
                 *
                 * apiTest.lis_person_name_given = "Mike";
                 * apiTest.lis_person_name_family = "Kollen";
                 */


                // tool_consumer_info_product_family_code: sakai
                // SAKAI: 091887fe-a54e-47d6-8e2a-f386f1d24426
                // course id = test_lti

                /*var apiTest = input.ApiLtiParam;
                 * apiTest.course = "test_lti";
                 * apiTest.tool_consumer_info_product_family_code = "sakai";
                 * apiTest.course_name = "Test LTI site";
                 * //apiTest.context_label = "Test LTI site";
                 * //apiTest.context_title = "Test LTI site";
                 * apiTest.lis_person_contact_email_primary = "*****@*****.**";
                 * // ??? HEADER??
                 * apiTest.referer = "http://sakai11.esynctraining.com/access/basiclti/site/test_lti/e8efacd7-f9eb-4cd5-9993-07d992666617";
                 *
                 * apiTest.lms_user_login = "******"; // sakai: lis_person_sourcedid
                 * apiTest.lms_user_id = "admin"; // sakai: user_id
                 *
                 * apiTest.lis_person_name_given = "Sakai";
                 * apiTest.lis_person_name_family = "Administrator";
                 *
                 * apiTest.ext_ims_lis_memberships_url = "http://sakai11.esynctraining.com/imsblis/service/";
                 * //apiTest.ext_ims_lti_tool_setting_url = "http://sakai11.esynctraining.com/imsblis/service/";
                 * apiTest.ext_ims_lis_memberships_id = "e4edb1c55e145b06d1390111d5d5590689834fe2a1882f301b10f397a89627bb:::admin:::e8efacd7-f9eb-4cd5-9993-07d992666617";
                 */

                OperationResult ret = await _meetingSetup.SaveMeeting(
                    LmsCompany,
                    ac,
                    input.ApiLtiParam,
                    meeting,
                    trace,
                    fb);

                return(ret);
            }
            catch (Exception ex)
            {
                string errorMessage = GetOutputErrorMessage("UpdateMeeting", ex);
                return(OperationResult.Error(errorMessage));
            }
        }
Exemple #5
0
 public Guid PostMeeting(CreateMeetingDto meeting)
 {
     return(_client.CreateMeeting(meeting));
 }