コード例 #1
0
        public JsonResult AddList(string SeriesID)
        {
            Guid serID = Guid.Parse(SeriesID);

            if (_context.StorySeries.AsNoTracking().Where(a => a.ID == serID).FirstOrDefault() != null &&
                _context.UserSchedule.AsNoTracking().Where(a => a.StorySeriesID == serID &&
                                                           a.UserID == GetUserId()).FirstOrDefault() == null)
            {
                var newCharacter = CreateCharacter(GetUserId(), Guid.Parse(SeriesID));

                var          card         = _context.StoryCard.AsNoTracking().Where(a => a.IsHead == true && a.StorySeriesID == serID).FirstOrDefault();
                UserSchedule userSchedule = new UserSchedule()
                {
                    ID             = Guid.NewGuid(),
                    CharacterID    = newCharacter.ID,
                    StorySeriesID  = serID,
                    StoryCardID    = card == null ? Guid.Empty : card.ID,
                    UserID         = GetUserId(),
                    ScheduleStatus = enumStoryStatus.进行中
                };
                _context.UserCharacter.Add(newCharacter);
                _context.UserSchedule.Add(userSchedule);
                _context.SaveChanges();
                return(Json(true));
            }
            else
            {
                return(Json(false));
            }
        }
コード例 #2
0
        public async Task <IHttpActionResult> PutUserSchedule(int id, UserSchedule userSchedule)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != userSchedule.UserScheduleId)
            {
                return(BadRequest());
            }

            db.Entry(userSchedule).State = EntityState.Modified;

            try
            {
                await db.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!UserScheduleExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
コード例 #3
0
        /// <summary>
        /// 返回创建人物故事卡
        /// </summary>
        private void CreateCharacter()
        {
            UserCharacter character = new UserCharacter()
            {
                ID         = Guid.NewGuid(),
                UserId     = GetUserId(),
                IsActivate = true,
            };

            _context.UserCharacter.Add(character);

            UserSchedule schedule = new UserSchedule()
            {
                ID            = Guid.NewGuid(),
                CharacterID   = character.ID,
                StoryCardID   = new DefaultValue().createCharacter,
                StorySeriesID = new DefaultValue().ScreateCharacter,
                IsMain        = true,
                IsStory       = true,
            };

            _context.UserSchedule.Add(schedule);

            _context.SaveChanges();

            ViewBag.ReadList   = _context.StoryCard.AsNoTracking().Include(a => a.StoryOptions).AsNoTracking().SingleOrDefault(a => a.ID == new DefaultValue().createCharacter);
            ViewBag.InLocation = false;
        }
コード例 #4
0
        public void AddNewUserProgramSchedule(User user, ProgramSchedule schedule)
        {
            var userSchedule = _context.UsersPrograms.SingleOrDefault(u => u.UserId == user.Id && u.ProgramScheduleId == schedule.Id);

            if (userSchedule == null)
            {
                var result = new UserSchedule
                {
                    User              = user,
                    ProgramSchedule   = schedule,
                    UserId            = user.Id,
                    ProgramScheduleId = schedule.Id
                };
                _context.UsersPrograms.Add(result);
                _context.SaveChanges();
            }
            else
            {
                _context.UsersPrograms.Remove(userSchedule);
                _context.UsersPrograms.Add(new UserSchedule
                {
                    User              = user,
                    ProgramSchedule   = schedule,
                    UserId            = user.Id,
                    ProgramScheduleId = schedule.Id
                }
                                           );
                _context.SaveChanges();
            }
        }
コード例 #5
0
        private async void ScheduleAppointment()
        {
            var mainviewModel = MainViewModel.GetInstance();

            var resc = await Application.Current.MainPage.DisplayAlert(
                Languages.ConfirmLabel,
                "Are you sure you want to schedule the appointment " + this.DateSchedule_ + " at " + startHour_ + "?",
                Languages.Accept,
                Languages.Cancel);

            if (!resc)
            {
                return;
            }

            if (AgendaId == 0)
            {
                await Application.Current.MainPage.DisplayAlert(
                    Languages.Error,
                    Languages.DateValidator,
                    Languages.Accept);

                return;
            }

            var userScheduler = new UserSchedule();

            userScheduler.UserId   = mainviewModel.User.UserId;
            userScheduler.AgendaId = this.AgendaId;

            var apiSecurity = Application.Current.Resources["APISecurity"].ToString();
            var response    = await this.apiService.Post(
                apiSecurity,
                "/api",
                "/UserSchedules",
                userScheduler);

            if (!response.IsSuccess)
            {
                await Application.Current.MainPage.DisplayAlert(
                    Languages.Error,
                    Languages.ErrorAppointment,
                    Languages.Accept);

                return;
            }
            else
            {
                await Application.Current.MainPage.DisplayAlert(
                    Languages.ConfirmLabel,
                    Languages.AppointmentSuccefully,
                    Languages.Accept);

                mainviewModel.Doctor = new DoctorViewModel();
                mainviewModel.Menu   = new MenuItemViewModel();
                await App.Navigator.PopAsync();
            }
        }
コード例 #6
0
        private static void RemindWindow(UserSchedule sched, int minuteIntervalToTvProgrammStart)
        {
            var remind = new ReminderForm(sched)
            {
                Text = $@"Your programme starts in {minuteIntervalToTvProgrammStart} minutes"
            };

            remind.ShowDialog();
        }
コード例 #7
0
        private void CopyDefaultSchedulesForUser()
        {
            IQueryable <DefaultSchedule> defaults = _repository.DefaultSchedules.Include("DaysToSend").Where(d => d.IsActive == true);

            foreach (DefaultSchedule defaultSched in defaults)
            {
                UserSchedule uc = new UserSchedule(defaultSched, _person);
                _repository.UserSchedules.Add(uc);
            }
        }
コード例 #8
0
 public bool insertLectureSchedule(UserSchedule u)
 {
     try
     {
         unitofwork.UsrSchRepo.Insert(u);
         unitofwork.Save();
         return(true);;
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
コード例 #9
0
        /// <summary>
        /// 执行道具效果
        /// </summary>
        private void ExeEffect(Guid itemID)
        {
            Item          item          = _context.Item.AsNoTracking().Where(a => a.ID == itemID).First();
            UserSchedule  schedule      = _context.UserSchedule.Where(a => a.UserID == GetUserId() && a.IsMain == true).First();
            UserCharacter character     = _context.UserCharacter.Where(a => a.ID == schedule.CharacterID).First();
            var           characterItem = _context.CharacterItem.Where(a => a.CharacterID == character.ID && a.ID == itemID).First();

            exeeffect(item.EffectClass1, item.EffectName1, item.EffectType1, item.EffectValue1, character, schedule);
            exeeffect(item.EffectClass2, item.EffectName2, item.EffectType2, item.EffectValue2, character, schedule);
            exeeffect(item.EffectClass3, item.EffectName3, item.EffectType3, item.EffectValue3, character, schedule);
            exeeffect(item.EffectClass4, item.EffectName4, item.EffectType4, item.EffectValue4, character, schedule);
            exeeffect(item.EffectClass5, item.EffectName5, item.EffectType5, item.EffectValue5, character, schedule);

            characterItem.Amount--;
            _context.SaveChanges();
        }
コード例 #10
0
        /// <summary>
        /// Method to remove a User Schedule Entry
        /// </summary>
        /// <param name="userIdentifier"></param>
        /// <param name="showId"></param>
        public void RemoveUserScheduleEntry(string userIdentifier, int showId)
        {
            UserSchedule userSchedule = _dataBase.UserSchedule.Where(x => x.UserIdentifier == userIdentifier && x.ShowId == showId).FirstOrDefault();

            if (userSchedule == null)
            {
                throw new Exception($"The delete operation with userIdentifier: {userIdentifier} and showId: {showId} returned 0 elements");
            }

            _dataBase.UserSchedule.Remove(userSchedule);
            _dataBase.SaveChanges();

            var show = _dataBase.Show.Where(x => x.ShowId == showId).First();

            _scheduleExtensionService.RemoveUserFromDistributionListAsync(userIdentifier, show, userSchedule.TimeMinutesToAlert);
        }
コード例 #11
0
        public async Task <IHttpActionResult> PostUserSchedule(UserSchedule userSchedule)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            Scheduler scheduler = await db.Schedulers.FindAsync(userSchedule.AgendaId);

            scheduler.StateId         = 2;
            db.Entry(scheduler).State = EntityState.Modified;
            await db.SaveChangesAsync();

            db.UserSchedules.Add(userSchedule);
            await db.SaveChangesAsync();

            return(CreatedAtRoute("DefaultApi", new { id = userSchedule.UserScheduleId }, userSchedule));
        }
コード例 #12
0
        public async void LoadMyDates()
        {
            this.IsRefreshing = true;
            var connection = await this.apiService.CheckConnection();

            if (!connection.IsSuccess)
            {
                this.IsRefreshing = false;
                await Application.Current.MainPage.DisplayAlert(
                    Languages.Error,
                    connection.Message,
                    Languages.Accept);

                await Application.Current.MainPage.Navigation.PopAsync();

                return;
            }

            var mainviewModel = MainViewModel.GetInstance();
            var userScheduler = new UserSchedule();

            userScheduler.UserId = mainviewModel.User.UserId;


            var apiHealth = Application.Current.Resources["APISecurity"].ToString();
            var response  = await this.apiService.GetList <Appointments>(
                apiHealth,
                "/api",
                "/UserSchedules",
                string.Format("/" + userScheduler.UserId));

            if (!response.IsSuccess)
            {
                this.IsRefreshing = false;
                await Application.Current.MainPage.DisplayAlert(
                    Languages.Error,
                    response.Message,
                    Languages.Accept);

                return;
            }

            MainViewModel.GetInstance().AppointmentList = (List <Appointments>)response.Result;
            this.MyDates_     = new ObservableCollection <MyDatesItemViewModel>(this.ToAppointmentItemViewModel());
            this.IsRefreshing = false;
        }
コード例 #13
0
        /// <summary>
        /// 清除该用户之前的故事记录
        /// </summary>
        /// <param name="SeriesID"></param>
        /// <param name="userid"></param>
        private void CleanStory(string SeriesID, Guid userid)
        {
            //清除上次运行数据
            UserSchedule         UserSchedule  = _context.UserSchedule.Where(a => a.UserID == userid && a.StorySeriesID == Guid.Parse(SeriesID)).FirstOrDefault();
            UserCharacter        userCharacter = null;
            List <CharacterItem> characterItem = new List <CharacterItem>();

            if (UserSchedule != null)
            {
                userCharacter = _context.UserCharacter.Where(a => a.UserId == userid && a.ID == UserSchedule.CharacterID).FirstOrDefault();
            }
            if (userCharacter != null)
            {
                characterItem = _context.CharacterItem.Where(a => a.CharacterID == userCharacter.ID).ToList();
            }
            if (UserSchedule != null)
            {
                _context.Remove(UserSchedule);
            }
            if (userCharacter != null)
            {
                _context.Remove(userCharacter);
            }
            if (characterItem.Count > 0)
            {
                _context.RemoveRange(characterItem);
            }
            //清除旧状态
            var statuslist = _context.CharacterStatus.Where(a => a.StorySeries == SeriesID && a.UserID == userid).ToList();

            if (statuslist.Count > 0)
            {
                _context.CharacterStatus.RemoveRange(statuslist);
            }

            //清楚随机数记录
            var random = _context.StoryCardRandom.Where(a => a.UserID == GetUserId() && a.StorySeriesID == Guid.Parse(SeriesID)).ToList();

            if (random.Count > 0)
            {
                _context.StoryCardRandom.RemoveRange(random);
            }
            _context.SaveChanges();
        }
コード例 #14
0
        public async Task <IHttpActionResult> DeleteUserSchedule(int id)
        {
            UserSchedule userSchedule = await db.UserSchedules.Where(us => us.AgendaId == id)
                                        .FirstOrDefaultAsync();

            if (userSchedule == null)
            {
                return(NotFound());
            }
            Scheduler scheduler = await db.Schedulers.FindAsync(userSchedule.AgendaId);

            scheduler.StateId         = 3;
            db.Entry(scheduler).State = EntityState.Modified;

            db.UserSchedules.Remove(userSchedule);
            await db.SaveChangesAsync();

            return(Ok(userSchedule));
        }
コード例 #15
0
        public ActionResult EditStudentForm(StudentEnrollment std)
        {
            try
            {
                UserSchedule   usrSch = new UserSchedule();
                ScheduleFacade sch    = new ScheduleFacade();

                if (TempData[Constant.ConstantFields.usrScheduleID] != null)
                {
                    usrSch.UserScheduleID = (int)TempData[Constant.ConstantFields.usrScheduleID];
                }

                if (TempData[Constant.ConstantFields.scheduleID] != null)
                {
                    usrSch.ScheduleID = (int)TempData[Constant.ConstantFields.scheduleID];
                }

                usrSch.UserID = std.studentSelected;
                usrSch.ObsInd = "N";

                int uId = (int)usrSch.UserID;
                int sId = (int)usrSch.ScheduleID;

                if (sch.isUserEnrolled(uId, sId))
                {
                    this.AddNotification("This student already enrolled in this course schedule. ", NotificationType.ERROR);
                    return(RedirectToAction("EditStudentSchedule", new { id = usrSch.UserScheduleID }));
                    //return RedirectToAction("Index", "Home");
                }

                schFacade.updateLectureSchedule(usrSch);

                StudentSchedule(string.Empty);
            }
            catch (Exception ex)
            {
                log.Error("Exception ex ", ex);
            }


            return(View("StudentSchedule"));
        }
コード例 #16
0
        private void LoadFields(UserSchedule programme)
        {
            tbUserName.Text  = $@"{programme.User.FirstName} {programme.User.LastName}";
            tbProgrTime.Text = programme.TvShow.Date.ToString(CultureInfo.CurrentCulture);
            tbProgName.Text  = programme.TvShow.Name;

            var phone = programme.User.UserPhones.FirstOrDefault(ph => ph.User == programme.User);

            if (phone != null)
            {
                tbSMSNumber.Text = @"+380" + phone.Number;
            }
            else
            {
                tbSMSNumber.Text = @"A phone number wasn't enter by user";
            }
            tbEmail.Text = programme.User.UserEmails
                           .FirstOrDefault(ph => ph.User == programme.User)
                           ?.EmailName ?? @"An e-mail wasn't enter by user";
        }
コード例 #17
0
        public List <UserSchedule> MapScheduleListFromViewToDb(List <Schedule> ScheduleList)
        {
            List <UserSchedule> usrScheduleList = new List <UserSchedule>();

            foreach (Schedule s in ScheduleList)
            {
                UserSchedule uSchedue = new UserSchedule();
                uSchedue.ScheduleDate = s.ScheduleDate;
                if (s.Repeat)
                {
                    uSchedue.UntilDate = s.UntilDate;
                }
                uSchedue.StartTime = s.StartTime;
                uSchedue.EndTime   = s.EndTime;
                uSchedue.Repeat    = s.Repeat;

                usrScheduleList.Add(uSchedue);
            }
            return(usrScheduleList);
        }
コード例 #18
0
        private async Task CreateUserScheduleAsync(int userId, string jobId, string timeZone, string jobConstant)
        {
            if (!await ExistJobAsync(jobId))
            {
                var job = new Schedule
                {
                    JobId = jobId
                };

                var userSchedule = new UserSchedule
                {
                    UserId       = userId,
                    Schedule     = job,
                    JobConstant  = jobConstant,
                    UserTimeZone = timeZone
                };

                await _uow.UserScheduleRepository.AddAsync(userSchedule);
            }
        }
コード例 #19
0
        public IHttpActionResult UserDelete(int QuizScheduleId, string UserId)
        {
            if ((!helper.ValidateQuizSchedule(QuizScheduleId)) || (!helper.ValidateUserId(UserId)))
            {
                return(BadRequest("Invalid Id"));
            }
            int          QuizId = db.QuizSchedules.FirstOrDefault(x => x.QuizScheduleId == QuizScheduleId).QuizId;
            UserSchedule user   = db.UserSchedules.SingleOrDefault(x => x.QuizScheduleId == QuizScheduleId && x.UserId == UserId && x.QuizId == QuizId);

            if (user.Taken == false)
            {
                db.UserSchedules.Remove(user);
                db.SaveChanges();
                return(Ok());
            }
            else
            {
                return(BadRequest("CantDeleteUser"));
            }
        }
コード例 #20
0
ファイル: UcShowsList.cs プロジェクト: vlad-mykh/VNV-TVApp
        private void lvShowPrograms_ItemCheck(object sender, ItemCheckEventArgs e)
        {
            //tv programme id in listview
            var id           = lvShowPrograms.Items[e.Index].SubItems[6].Text.GetInt();
            var userRepo     = new BaseRepository <User>();
            var scheduleRepo = new BaseRepository <UserSchedule>(userRepo.ContextDb);
            var user         = userRepo.Get(u => u.Id == CurrentUserId).FirstOrDefault();

            switch (e.NewValue)
            {
            case CheckState.Checked:
                if (scheduleRepo.GetAll().ToList().Find(s => s.TvShow.Id == id &&
                                                        s.User.Id == CurrentUserId) == null)
                {
                    var schedule = new UserSchedule
                    {
                        DueDate = DateTime.Now.AddDays(7),
                        User    = user,
                        TvShow  = new BaseRepository <TvShow>(userRepo.ContextDb)
                                  .Get(s => s.Id == id).FirstOrDefault()
                    };
                    scheduleRepo.Insert(schedule);
                }
                break;

            case CheckState.Unchecked:
                var removeSh = scheduleRepo.Get(x => x.TvShow.Id == id).FirstOrDefault();
                if (removeSh != null)
                {
                    scheduleRepo.Remove(removeSh);
                }
                break;

            case CheckState.Indeterminate:
                MessageContainer.DisplayError("Something went wrong in checking/unchecking tvShows (case CheckState.Indeterminate:)", "Error");
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
コード例 #21
0
        public ActionResult DeleteLecturerSchedule(int id)
        {
            try
            {
                StudentEnrollment stdmModel = new StudentEnrollment();

                if (Session[Constant.ConstantFields.lecturerSchedule] != null)
                {
                    List <StudentEnrollment> lst = (List <StudentEnrollment>)Session[Constant.ConstantFields.lecturerSchedule];

                    for (int i = 0; i < lst.Count; i++)
                    {
                        StudentEnrollment std = lst[i];
                        if (std.usrScheduleId == id)
                        {
                            stdmModel = std;
                            break;
                        }
                    }
                }

                UserSchedule sch = new UserSchedule();
                sch.ObsInd = "Y";

                sch.ScheduleID     = stdmModel.scheduleId;
                sch.UserID         = stdmModel.userId;
                sch.UserScheduleID = stdmModel.usrScheduleId;

                schFacade.updateLectureSchedule(sch);

                LecturerSchedule();
            }
            catch (Exception ex)
            {
                log.Error("Exception ", ex);
            }

            return(View("LecturerSchedule"));
        }
コード例 #22
0
        public ActionResult EditLecturerForm(StudentEnrollment std)
        {
            try
            {
                UserSchedule usrSch = new UserSchedule();

                if (TempData[Constant.ConstantFields.usrScheduleID] != null)
                {
                    usrSch.UserScheduleID = (int)TempData[Constant.ConstantFields.usrScheduleID];
                }

                if (TempData[Constant.ConstantFields.scheduleID] != null)
                {
                    usrSch.ScheduleID = (int)TempData[Constant.ConstantFields.scheduleID];
                }

                usrSch.UserID = std.lecturerSelected;
                usrSch.ObsInd = "N";

                if (TempData[Constant.ConstantFields.lecturerName] == null)
                {
                    schFacade.insertLectureSchedule(usrSch);
                }
                else
                {
                    schFacade.updateLectureSchedule(usrSch);
                }

                LecturerSchedule();
            }
            catch (Exception ex)
            {
                log.Error("Exception ex ", ex);
            }

            return(View("LecturerSchedule"));
        }
コード例 #23
0
        public IHttpActionResult UserAdd(int QuizScheduleId, [FromBody] string[] UserIds)
        {
            if (!helper.ValidateQuizSchedule(QuizScheduleId))
            {
                return(BadRequest("Invalid Id"));
            }
            UserSchedule userSchedule = new UserSchedule();

            userSchedule.QuizScheduleId = QuizScheduleId;
            userSchedule.QuizId         = db.QuizSchedules.FirstOrDefault(x => x.QuizScheduleId == QuizScheduleId).QuizId;
            userSchedule.Taken          = false;
            foreach (var item in UserIds)
            {
                userSchedule.UserId = item;
                db.UserSchedules.Add(userSchedule);
                db.SaveChanges();
            }
            var userEmails    = db.Users.Where(x => UserIds.Contains(x.Id)).Select(y => y.Email).ToArray();
            var quizId        = db.QuizSchedules.Single(x => x.QuizScheduleId == QuizScheduleId).QuizId;
            var time          = db.Quizs.Single(y => y.QuizId == quizId).QuizTime;
            var EmailResponse = helper.InviteUser(userEmails, "Click on the Link Below to take Quiz. \n <a href=\"" + "http://localhost:4200/?take-quiz=" + quizId + "&schedule-id=" + QuizScheduleId + "&time=" + time + "\">Click Here</a>");

            return(Ok());
        }
コード例 #24
0
 public void Init()
 {
     instance = new UserSchedule();
 }
コード例 #25
0
        public async Task <JsonResult> NextCard(Guid optionID)
        {
            Guid userid = GetUserId();

            try
            {
                //校验操作 - 查看该选项是否在故事卡片内并可以选择
                var opti      = _context.StoryOption.AsNoTracking().Where(a => a.ID == optionID).First();
                var storycard = _context.StoryCard.Include(a => a.StoryOptions).AsNoTracking().Where(a => a.ID == opti.StoryCardID).First();
                var Schedule  = _context.UserSchedule.Where(a => a.UserID == GetUserId() && a.StoryCardID == storycard.ID).First();
                if (Check(opti, storycard.StorySeriesID.ToString()))
                {
                    JsonResult result = Json(string.Empty);
                    //执行操作效果
                    #region
                    if (!string.IsNullOrWhiteSpace(opti.Effect))
                    {
                        List <Istatus> storyStatuses = JsonConvert.DeserializeObject <List <Istatus> >(opti.Effect);

                        //人物属性
                        UserSchedule  schedule  = _context.UserSchedule.AsNoTracking().Where(a => a.UserID == GetUserId() && a.StorySeriesID == Schedule.StorySeriesID).First();
                        UserCharacter character = _context.UserCharacter.Where(a => a.ID == schedule.CharacterID).FirstOrDefault();

                        foreach (var obj in storyStatuses)
                        {
                            //操作
                            if (Convert.ToInt32(obj.Type) == (int)enumEffectType.结束处理)
                            {
                                return(result = Json(GameOver(Schedule.StorySeriesID)));
                            }

                            switch (obj.Name)
                            {
                            case ("MaxHealthy"):
                                character.MaxHealthy = ExeCharacterEffect(character.MaxHealthy, obj.Value, obj.Type);
                                break;

                            case ("MaxSanity"):
                                character.MaxSanity = ExeCharacterEffect(character.MaxSanity, obj.Value, obj.Type);
                                break;

                            case ("Healthy"):
                                character.Healthy = ExeCharacterEffect(character.Healthy, obj.Value, obj.Type);
                                if (character.Healthy > character.MaxHealthy)
                                {
                                    character.Healthy = character.MaxHealthy;
                                }
                                break;

                            case ("Sanity"):
                                character.Sanity = ExeCharacterEffect(character.Sanity, obj.Value, obj.Type);
                                if (character.Sanity > character.MaxSanity)
                                {
                                    character.Sanity = character.MaxSanity;
                                }
                                break;

                            case ("ActionPoints"):
                                character.ActionPoints = ExeCharacterEffect(character.ActionPoints, obj.Value, obj.Type);
                                break;

                            case ("Lucky"):
                                character.Lucky = ExeCharacterEffect(character.Lucky, obj.Value, obj.Type);
                                break;

                            case ("Speed"):
                                character.Speed = ExeCharacterEffect(character.Speed, obj.Value, obj.Type);
                                break;

                            case ("Strength"):
                                character.Strength = ExeCharacterEffect(character.Strength, obj.Value, obj.Type);
                                break;

                            case ("Intelligence"):
                                character.Intelligence = ExeCharacterEffect(character.Intelligence, obj.Value, obj.Type);
                                break;

                            case ("Experience"):
                                character.Experience = ExeCharacterEffect(character.Experience, obj.Value, obj.Type);
                                break;

                            case ("Status"):
                                character.Status = ExeCharacterEffect(character.Status, obj.Value, obj.Type);
                                break;

                            case ("Moral"):
                                character.Moral = ExeCharacterEffect(character.Moral, obj.Value, obj.Type);
                                break;

                            default:
                                //道具
                                //TODO

                                //故事状态
                                storystatu(userid, storycard, obj);
                                break;
                            }
                        }
                        _context.SaveChanges();
                    }
                    #endregion

                    //下一页构建
                    #region
                    var Nextstorycard = _context.StoryCard.Include(a => a.StoryOptions).AsNoTracking().Where(a => a.ID == opti.NextStoryCardID).FirstOrDefault();

                    if (Nextstorycard != null)
                    {
                        StoryCard resultCard = new StoryCard()
                        {
                            ID            = Nextstorycard.ID,
                            StorySeriesID = Nextstorycard.StorySeriesID,
                            StoryName     = Nextstorycard.StoryName,
                            Title         = Nextstorycard.Title,
                            Text          = Nextstorycard.Text,
                            IMG           = Nextstorycard.IMG,
                            BackgroundIMG = Nextstorycard.BackgroundIMG,
                            IsHead        = Nextstorycard.IsHead,
                            StoryOptions  = new List <StoryOption>()
                        };
                        //去除不显示的选项
                        foreach (var option in Nextstorycard.StoryOptions)
                        {
                            if (Check(option, storycard.StorySeriesID.ToString()))
                            {
                                resultCard.StoryOptions.Add(option);
                            }
                        }
                        result = Json(resultCard);
                        //保存进度

                        Schedule.StoryCardID = Nextstorycard.ID;
                        await _context.SaveChangesAsync();

                        #endregion
                    }

                    return(result);
                }
                else
                {
                    return(Json(false));
                }
            }
            catch (Exception ex)
            {
                return(Json(ex));
            }
        }
コード例 #26
0
        private void exeeffect(string EffectClass, string EffectName, string EffectType, string EffectValue, UserCharacter character, UserSchedule schedule)
        {
            switch (EffectClass)
            {
            case "1":    //故事状态
                var status = _context.StoryStatus.Where(a => a.Name == EffectName && a.StorySeries == schedule.StorySeriesID.ToString()).First();
                status.Value = execharacter(EffectValue, EffectType, float.Parse(status.Value)).ToString();
                break;

            case "2":    //角色状态
                switch (EffectName)
                {
                case "ActionPoints":
                    character.ActionPoints = execharacter(EffectValue, EffectType, character.ActionPoints);
                    break;

                case "Lucky":
                    character.Lucky = execharacter(EffectValue, EffectType, character.Lucky);
                    break;

                case "Speed":
                    character.Speed = execharacter(EffectValue, EffectType, character.Speed);
                    break;

                case "Strength":
                    character.Strength = execharacter(EffectValue, EffectType, character.Strength);
                    break;

                case "Intelligence":
                    character.Intelligence = execharacter(EffectValue, EffectType, character.Intelligence);
                    break;

                case "Experience":
                    character.Experience = execharacter(EffectValue, EffectType, character.Experience);
                    break;

                case "Status":
                    character.Status = execharacter(EffectValue, EffectType, character.Status);
                    break;

                case "Moral":
                    character.Moral = execharacter(EffectValue, EffectType, character.Moral);
                    break;
                }
                break;
            }
        }
コード例 #27
0
        public ReminderForm(UserSchedule programme)
        {
            InitializeComponent();

            LoadFields(programme);
        }