Exemplo n.º 1
0
        public async Task <IHttpActionResult> Post([FromBody] TasktendreamCs data)
        {
            //if (data.VideoLessonId == null)
            //{
            //    return BadRequest("VideoLessonId not specified");
            //}

            try
            {
                string UserName = User.Identity.Name;

                UserInfo userinfo = await db.UserInfoes.FirstOrDefaultAsync(e => e.UserName == UserName);

                Task_First tasktendream = userinfo.Task_First.FirstOrDefault();

                if (tasktendream != null)
                {
                    tasktendream.First  = data.First;
                    tasktendream.Second = data.Second;
                    tasktendream.Third  = data.Third;
                    tasktendream.Four   = data.Fourth;
                    tasktendream.Five   = data.Fifth;
                    tasktendream.Six    = data.Sixth;
                    tasktendream.Seven  = data.Seventh;
                    tasktendream.Eight  = data.Eighth;
                    tasktendream.Nine   = data.Ninth;
                    tasktendream.Ten    = data.Tenth;
                }
                else
                {
                    Task_First usertasktendream = new Task_First();

                    usertasktendream.First  = data.First;
                    usertasktendream.Second = data.Second;
                    usertasktendream.Third  = data.Third;
                    usertasktendream.Four   = data.Fourth;
                    usertasktendream.Five   = data.Fifth;
                    usertasktendream.Six    = data.Sixth;
                    usertasktendream.Seven  = data.Seventh;
                    usertasktendream.Eight  = data.Eighth;
                    usertasktendream.Nine   = data.Ninth;
                    usertasktendream.Ten    = data.Tenth;

                    userinfo.Task_First.Add(usertasktendream);
                }

                db.SaveChanges();

                UserTaskCheck ustskch       = userinfo.UserTaskChecks.FirstOrDefault(e => e.TaskId == 34);
                UserTaskCheck UserTaskCheck = new UserTaskCheck();

                if (ustskch == null)
                {
                    UserTaskCheck.TaskId = 34;
                    UserTaskCheck.Status = false;
                }


                if (!string.IsNullOrEmpty(data.First) && !string.IsNullOrEmpty(data.Second) &&
                    !string.IsNullOrEmpty(data.Third) && !string.IsNullOrEmpty(data.Fourth) &&
                    !string.IsNullOrEmpty(data.Fifth) && !string.IsNullOrEmpty(data.Sixth) &&
                    !string.IsNullOrEmpty(data.Seventh) && !string.IsNullOrEmpty(data.Eighth) &&
                    !string.IsNullOrEmpty(data.Ninth) && !string.IsNullOrEmpty(data.Tenth))
                {
                    if (ustskch == null)
                    {
                        UserTaskCheck.Status = true;
                        userinfo.UserTaskChecks.Add(UserTaskCheck);
                    }
                    else
                    {
                        ustskch.Status = true;
                    }

                    VideoL VideoL = await db.VideoLs.FirstOrDefaultAsync(e => e.XId == 3 && e.language == "ru");

                    var test = VideoL.Tests.ToList();

                    if (test.Count == 0)
                    {
                        JVLO jv = await db.JVLOes.FirstOrDefaultAsync(e => e.UserName == UserName);

                        var Moduls_userLevel = await db.Modul_userLevel.Where(e => e.LevelId <= userinfo.LevelId).ToListAsync();

                        var Moduls         = Moduls_userLevel.Select(e => e.Modul).Where(e => e.Enable == true).ToList();
                        var EnableVideoXLs = new List <VideoXL>();
                        foreach (var Module in Moduls)
                        {
                            EnableVideoXLs.AddRange(Module.VideoXLs.Where(e => e.Enable == true).ToList());
                        }

                        VideoXL NextVideoXL = EnableVideoXLs.Where(e => e.XId > 3).OrderBy(e => e.XId).FirstOrDefault();



                        if (NextVideoXL != null)
                        {
                            if (NextVideoXL.XId > jv.X)
                            {
                                jv.X = NextVideoXL.XId;
                            }
                        }
                    }
                }



                await db.SaveChangesAsync();

                return(Ok());
            }
            catch
            {
                return(BadRequest("filed"));
            }
        }
Exemplo n.º 2
0
        // POST: api/Default
        public async Task <IHttpActionResult> Post(string language)
        {
            ResponseVideoLs response = new ResponseVideoLs();

            var EnableVideoLs = new List <VideoL>();

            var UVideoLessons = new List <UVideoLessons>();


            try
            {
                if (language == null)
                {
                    language = "ru";
                }

                string UserName = User.Identity.Name;

                UserInfo userinfo = await db.UserInfoes.FirstOrDefaultAsync(e => e.UserName == UserName);



                JVLO JV = await db.JVLOes.FirstOrDefaultAsync(e => e.UserName == UserName);


                //-----GET User ENABLE VIDEOXLs----------------------------------------
                var Moduls_userLevel = await db.Modul_userLevel.Where(e => e.LevelId <= userinfo.LevelId).ToListAsync();

                var Moduls         = Moduls_userLevel.Select(e => e.Modul).Where(e => e.Enable == true).ToList();
                var EnableVideoXLs = new List <VideoXL>();
                foreach (var Module in Moduls)
                {
                    EnableVideoXLs.AddRange(Module.VideoXLs.Where(e => e.Enable == true).ToList());
                }
                //-----END------------------------------------------------------------



                EnableVideoXLs = EnableVideoXLs.OrderBy(e => e.XId).ToList();


                foreach (var videoXL in EnableVideoXLs)
                {
                    EnableVideoLs.AddRange(videoXL.VideoLs);
                }

                List <VideoL> videoizb = new List <VideoL>();
                foreach (var izb in userinfo.Isbrannis.ToList())
                {
                    VideoL vid = EnableVideoLs.FirstOrDefault(e => e.language == language && e.XId == izb.VideoLXId);
                    if (vid == null)
                    {
                        vid = EnableVideoLs.FirstOrDefault(e => e.language == "ru" && e.XId == izb.VideoLXId);
                    }

                    if (vid != null)
                    {
                        videoizb.Add(vid);
                    }
                }

                foreach (var videoLs in videoizb)
                {
                    string Image = videoLs.Iconimg != null?Url.Content(videoLs.Iconimg) : null;

                    bool Enable = true;
                    int  Like   = 0;
                    int  View   = 0;
                    int  minute = 0;

                    VideoLEM videLem = videoLs.VideoXL.VideoLEMs.FirstOrDefault();

                    if (videLem != null)
                    {
                        Like   = videLem.Likes;
                        View   = videLem.Eye;
                        minute = videLem.minute;
                    }


                    if (JV.X < videoLs.XId)
                    {
                        Image = videoLs.Iconimg != null?Url.Content(videoLs.Iconimg2) : null;

                        Enable = false;
                    }

                    UVideoLessons.Add(new UVideoLessons
                    {
                        Id     = videoLs.Id,
                        MId    = videoLs.Modul.XId,
                        lang   = videoLs.language,
                        Name   = videoLs.Name,
                        Image  = Image,
                        Like   = Like,
                        View   = View,
                        minute = minute,
                        Enable = Enable
                    });
                }

                response.status        = "ok";
                response.UVideoLessons = UVideoLessons;
                return(Json(response));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
Exemplo n.º 3
0
        // POST: api/Default
        public async Task <IHttpActionResult> Post([FromBody] VideoLessonCs data)
        {
            ResponseVideoL response     = new ResponseVideoL();
            UVideoLesson   UVideoLesson = new UVideoLesson();

            try
            {
                string UserName = User.Identity.Name;

                UserInfo userinfo = await db.UserInfoes.FirstOrDefaultAsync(e => e.UserName == UserName);

                JVLO JV = await db.JVLOes.FirstOrDefaultAsync(e => e.UserName == UserName);


                if (data == null)
                {
                    return(BadRequest("data null"));
                }

                if (data.Id == null)
                {
                    return(BadRequest("data id null"));
                }


                VideoL VideoL = await db.VideoLs.FindAsync(data.Id);

                if (VideoL == null)
                {
                    return(BadRequest("VideoL null"));
                }

                if (VideoL.Modul.Enable != true)
                {
                    return(BadRequest("VideoL Disable"));
                }

                if (VideoL.VideoXL.Enable != true)
                {
                    return(BadRequest("VideoL Disable"));
                }

                if (VideoL.Modul.Modul_userLevel.FirstOrDefault().LevelId > userinfo.LevelId)
                {
                    return(BadRequest("User level not available"));
                }

                if (VideoL.XId > JV.X)
                {
                    return(BadRequest("User level not available"));
                }



                //-----GET User ENABLE VIDEOXLs----------------------------------------
                var Moduls_userLevel = await db.Modul_userLevel.Where(e => e.LevelId <= userinfo.LevelId).ToListAsync();

                var Moduls         = Moduls_userLevel.Select(e => e.Modul).Where(e => e.Enable == true).ToList();
                var EnableVideoXLs = new List <VideoXL>();
                foreach (var Module in Moduls)
                {
                    EnableVideoXLs.AddRange(Module.VideoXLs.Where(e => e.Enable == true).ToList());
                }
                //-----END------------------------------------------------------------



                var vxl = EnableVideoXLs.OrderBy(e => e.XId).ToList();


                VideoXL vlXID = vxl.Where(e => e.XId < VideoL.XId).OrderByDescending(e => e.XId).FirstOrDefault();
                VideoXL vnXID = vxl.Where(e => e.XId > VideoL.XId).OrderBy(e => e.XId).FirstOrDefault();

                VideoL vl = null;
                VideoL vn = null;

                if (vlXID != null)
                {
                    vl = await db.VideoLs.FirstOrDefaultAsync(e => e.XId == vlXID.XId && e.language == VideoL.language);

                    if (vl == null && VideoL.language != "ru")
                    {
                        vl = await db.VideoLs.FirstOrDefaultAsync(e => e.XId == vlXID.XId && e.language == "ru");
                    }
                }
                if (vnXID != null)
                {
                    vn = await db.VideoLs.FirstOrDefaultAsync(e => e.XId == vnXID.XId && e.language == VideoL.language);

                    if (vn == null && VideoL.language != "ru")
                    {
                        vn = await db.VideoLs.FirstOrDefaultAsync(e => e.XId == vnXID.XId && e.language == "ru");
                    }
                }



                int  Like = 0;
                int  View = 0;
                bool test = false;
                if (VideoL.Tests.Count > 0)
                {
                    test = true;
                    ValitO valito = userinfo.ValitOS.FirstOrDefault(e => e.VdeoLXId == VideoL.XId);
                    if (valito != null)
                    {
                        if (valito.KB > 74)
                        {
                            test = false;
                        }
                    }
                }


                bool FoolLook = false;

                LessonVideoTime look = userinfo.LessonVideoTimes.FirstOrDefault(e => e.LessonXId == VideoL.XId);
                if (look != null)
                {
                    if (look.Status)
                    {
                        FoolLook = true;
                    }
                }



                bool task = false;

                Models.Task Vtask = await db.Tasks.FirstOrDefaultAsync(e => e.LessonXId == VideoL.XId);

                if (Vtask != null)
                {
                    UserTaskCheck UserTaskCheck = userinfo.UserTaskChecks.FirstOrDefault(e => e.TaskId == Vtask.Id);
                    if (UserTaskCheck != null)
                    {
                        if (UserTaskCheck.Status == false)
                        {
                            task = true;
                        }
                    }
                    else if (FoolLook == true)
                    {
                        task = true;
                        UserTaskCheck newUserTaskCheck = new UserTaskCheck();
                        newUserTaskCheck.TaskId = Vtask.Id;
                        newUserTaskCheck.Status = false;
                        userinfo.UserTaskChecks.Add(newUserTaskCheck);
                        await db.SaveChangesAsync();
                    }
                }



                VideoLEM videLem = VideoL.VideoXL.VideoLEMs.FirstOrDefault();

                if (videLem != null)
                {
                    Like = videLem.Likes;
                    View = videLem.Eye;
                }

                bool certificate = false;

                double LastVXId = vxl.Where(e => e.MId == 4).Max(e => e.XId);

                if (VideoL.XId == LastVXId)
                {
                    if (FoolLook == false)
                    {
                        certificate = true;
                    }
                }



                bool liked  = false;
                bool viewed = false;
                bool chosen = false;
                EyeV eye    = userinfo.EyeVs.FirstOrDefault(e => e.VideoXId == VideoL.XId);
                if (eye != null)
                {
                    viewed = true;
                }
                LikeV like = userinfo.LikeVs.FirstOrDefault(e => e.VideoXId == VideoL.XId);
                if (like != null)
                {
                    liked = true;
                }
                Isbranni isb = userinfo.Isbrannis.FirstOrDefault(e => e.VideoLXId == VideoL.XId);
                if (isb != null)
                {
                    chosen = true;
                }


                if (vl != null)
                {
                    UVideoLesson.previousId = vl.Id;
                }

                if (vn != null)
                {
                    UVideoLesson.nextId = vn.Id;
                }



                UVideoLesson.Id          = VideoL.Id;
                UVideoLesson.lang        = VideoL.language;
                UVideoLesson.Name        = VideoL.Name;
                UVideoLesson.Link        = VideoL.Link;
                UVideoLesson.Like        = Like;
                UVideoLesson.Views       = View;
                UVideoLesson.Liked       = liked;
                UVideoLesson.Viewed      = viewed;
                UVideoLesson.Chosen      = chosen;
                UVideoLesson.FoolLook    = FoolLook;
                UVideoLesson.Test        = test;
                UVideoLesson.Task        = task;
                UVideoLesson.certificate = certificate;

                response.status       = "ok";
                response.UVideoLesson = UVideoLesson;

                return(Json(response));
            }

            catch (Exception ex) {
                return(BadRequest(ex.Message));
            }
        }
Exemplo n.º 4
0
        public async Task <IHttpActionResult> Login(LoginBindingModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            bool      sign         = false;
            bool      UserAPI      = false;
            string    ErrorMessage = null;
            UserToken UserTokenAPI = new UserToken();


            try
            {
                var httpWebRequest = (HttpWebRequest)WebRequest.Create("https://my.marinehealth.asia/api/auth/mobile");
                httpWebRequest.ContentType = "application/json";
                httpWebRequest.Method      = "POST";

                using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
                {
                    string json = "{\"Email\":\"" + model.UserName + "\"," + "\"Password\":\"" + model.Password + "\"}";
                    streamWriter.Write(json);
                    streamWriter.Flush();
                    streamWriter.Close();
                }

                string      responsezec;
                WebResponse response = await httpWebRequest.GetResponseAsync();

                using (Stream stream = response.GetResponseStream())
                {
                    using (StreamReader reader = new StreamReader(stream))
                    {
                        responsezec = await reader.ReadToEndAsync();
                    }
                }


                UserTokenAPI = JsonConvert.DeserializeObject <UserToken>(responsezec);

                UserAPI = true;

                response.Close();
            }

            catch
            {
                UserAPI = false;
            }



            ApplicationUser result = await UserManager.FindAsync(model.UserName, model.Password);


            if (result != null && UserAPI)
            {
                try
                {
                    if (UserTokenAPI.Status == "Success")
                    {
                        sign = true;
                    }
                    else if (UserTokenAPI.Status == "TooManyAttempts")
                    {
                        ErrorMessage = "Cлишком много попыток, пожалуйста, попробуйте еще раз позже";
                    }
                    else
                    {
                        ErrorMessage = "Имя пользователя или пароль указаны неверно.";
                    }
                }
                catch { }
            }
            else if (UserAPI)
            {
                if (UserTokenAPI.Status == "Success")
                {
                    var User = await UserManager.FindByNameAsync(model.UserName);

                    if (User == null)
                    {
                        var user = new ApplicationUser()
                        {
                            UserName = model.UserName, Email = model.UserName
                        };

                        IdentityResult CreateUserResult = await UserManager.CreateAsync(user, model.Password);


                        if (!CreateUserResult.Succeeded)
                        {
                            return(GetErrorResult(CreateUserResult));
                        }


                        try
                        {
                            if (UserTokenAPI.Token != null)
                            {
                                var rqstinfus     = WebRequest.Create("https://my.marinehealth.asia/api/proxy/userprofile/get?includeSensitiveData=false");
                                var Httprqstinfus = (HttpWebRequest)rqstinfus;
                                Httprqstinfus.PreAuthenticate = true;

                                Httprqstinfus.Headers.Add("AuthToken", UserTokenAPI.Token);
                                Httprqstinfus.Accept = "application/json";
                                string      responseiu;
                                WebResponse responseiuw = await Httprqstinfus.GetResponseAsync();

                                using (Stream stream = responseiuw.GetResponseStream())
                                {
                                    using (StreamReader reader = new StreamReader(stream))
                                    {
                                        responseiu = await reader.ReadToEndAsync();
                                    }
                                }

                                MHUserInfo MHUserInfo = JsonConvert.DeserializeObject <MHUserInfo>(responseiu);


                                if (MHUserInfo.ImageFileName != null && MHUserInfo.Contacts.Count > 0)
                                {
                                    MHUserInfo.ImageFileName = "https://my.marinehealth.asia/files/users/" + MHUserInfo.Contacts[0].UserId + "/images/" + MHUserInfo.ImageFileName;
                                }

                                UserInfo UserInfoNew = new UserInfo();
                                UserInfoNew.Lname    = MHUserInfo.LastName;
                                UserInfoNew.Fname    = MHUserInfo.FirstName;
                                UserInfoNew.Image    = MHUserInfo.ImageFileName;
                                UserInfoNew.UserName = model.UserName;
                                UserInfoNew.LevelId  = MHUserInfo.LevelId == null ? 0 : MHUserInfo.LevelId;
                                UserInfoNew.RegTime  = DateTime.Now.AddHours(6);
                                db.UserInfoes.Add(UserInfoNew);



                                JVLO jvnew = new JVLO();
                                jvnew.OV       = 1;
                                jvnew.TBB      = 0;
                                jvnew.UserName = model.UserName;
                                jvnew.X        = 1;
                                db.JVLOes.Add(jvnew);

                                await db.SaveChangesAsync();
                            }


                            sign = true;
                        }
                        catch {
                            sign = false;
                        }
                    }
                    else
                    {
                        string code = await UserManager.GeneratePasswordResetTokenAsync(User.Id);

                        var ResertPasswordResult = await UserManager.ResetPasswordAsync(User.Id, code, model.Password);

                        if (ResertPasswordResult.Succeeded)
                        {
                            sign = true;
                        }
                    }
                }
                else
                {
                    if (UserTokenAPI.Status == "TooManyAttempts")
                    {
                        ErrorMessage = "Cлишком много попыток, пожалуйста, попробуйте еще раз позже";
                    }
                    else
                    {
                        ErrorMessage = "Имя пользователя или пароль указаны неверно.";
                    }
                }
            }



            if (sign)
            {
                UT UserToken = await db.UTs.FirstOrDefaultAsync(e => e.UserName == model.UserName);

                if (UserToken != null && UserTokenAPI != null)
                {
                    if (UserToken.Token != UserTokenAPI.Token)
                    {
                        UserToken.Token = UserTokenAPI.Token;
                    }
                    await db.SaveChangesAsync();
                }
                else
                {
                    UT newUserToken = new UT();
                    newUserToken.UserName = model.UserName;
                    newUserToken.Token    = UserTokenAPI.Token;
                    newUserToken.Date     = DateTime.Now.AddHours(6);
                    db.UTs.Add(newUserToken);
                    await db.SaveChangesAsync();
                }


                return(Ok());
            }

            return(BadRequest(ErrorMessage));
        }
Exemplo n.º 5
0
        public async Task <ActionResult> Initialize(string language)
        {
            try
            {
                string UserName = GetUserName();


                UT UserToken = await db.UTs.FirstOrDefaultAsync(e => e.UserName == UserName);

                if (UserToken != null)
                {
                    var rqstinfus     = WebRequest.Create("https://my.marinehealth.asia/api/proxy/userprofile/get?includeSensitiveData=false");
                    var Httprqstinfus = (HttpWebRequest)rqstinfus;
                    Httprqstinfus.PreAuthenticate = true;

                    Httprqstinfus.Headers.Add("AuthToken", UserToken.Token);
                    Httprqstinfus.Accept = "application/json";
                    string      responseiu;
                    WebResponse responseiuw = Httprqstinfus.GetResponse();
                    using (Stream stream = responseiuw.GetResponseStream())
                    {
                        using (StreamReader reader = new StreamReader(stream))
                        {
                            responseiu = reader.ReadToEnd();
                        }
                    }

                    MHUserInfo MHUserInfo = JsonConvert.DeserializeObject <MHUserInfo>(responseiu);


                    if (MHUserInfo.ImageFileName != null && MHUserInfo.Contacts.Count > 0)
                    {
                        MHUserInfo.ImageFileName = "https://my.marinehealth.asia/files/users/" + MHUserInfo.Contacts[0].UserId + "/images/" + MHUserInfo.ImageFileName;
                    }



                    UserInfo UserInfo = await db.UserInfoes.FirstOrDefaultAsync(e => e.UserName == UserName);



                    if (UserInfo != null)
                    {
                        UserInfo.Lname   = MHUserInfo.LastName;
                        UserInfo.Fname   = MHUserInfo.FirstName;
                        UserInfo.Image   = MHUserInfo.ImageFileName;
                        UserInfo.LevelId = MHUserInfo.LevelId == null ? 0 : MHUserInfo.LevelId;
                    }
                    else
                    {
                        UserInfo UserInfoNew = new UserInfo();
                        UserInfoNew.Lname    = MHUserInfo.LastName;
                        UserInfoNew.Fname    = MHUserInfo.FirstName;
                        UserInfoNew.Image    = MHUserInfo.ImageFileName;
                        UserInfoNew.UserName = UserName;
                        UserInfoNew.LevelId  = MHUserInfo.LevelId == null ? 0 : MHUserInfo.LevelId;
                        UserInfoNew.RegTime  = DateTime.Now.AddHours(6);
                        db.UserInfoes.Add(UserInfoNew);


                        JVLO jv = await db.JVLOes.FirstOrDefaultAsync(e => e.UserName == UserName);

                        if (jv == null)
                        {
                            JVLO jvnew = new JVLO();
                            jvnew.OV       = 1;
                            jvnew.TBB      = 0;
                            jvnew.UserName = UserName;
                            jvnew.X        = 1;
                            db.JVLOes.Add(jvnew);
                        }
                    }

                    await db.SaveChangesAsync();

                    return(RedirectToAction("Modules", "Learning", new { language = language }));
                }
            }
            catch
            {
            }

            string ActionName = "Initialize";

            return(RedirectToAction("ErrorLogOff", "Account", new { language = language, ActionName = ActionName }));
        }
Exemplo n.º 6
0
        public async Task <ActionResult> favorites(string language)
        {
            try
            {
                string UserName = GetUserName();
                if (language == null)
                {
                    language = "ru";
                }



                UserInfo UserInfoOBJ = await db.UserInfoes.FirstOrDefaultAsync(e => e.UserName == UserName);

                JVLO jv = await db.JVLOes.FirstOrDefaultAsync(e => e.UserName == UserName);

                UserProgress UserProgress = await UserGet.Progress(UserName, UserInfoOBJ.LevelId, language);


                var EnableVideoLs = new List <VideoL>();

                foreach (var videoXL in UserProgress.EnableVideoXLs)
                {
                    if (videoXL.XId <= jv.X)
                    {
                        EnableVideoLs.AddRange(videoXL.VideoLs);
                    }
                }



                List <VideoL> videoizb = new List <VideoL>();
                foreach (var izb in UserInfoOBJ.Isbrannis.ToList())
                {
                    VideoL vid = EnableVideoLs.Where(e => e.language == language && e.XId == izb.VideoLXId).FirstOrDefault();
                    if (vid == null)
                    {
                        vid = EnableVideoLs.Where(e => e.language == "ru" && e.XId == izb.VideoLXId).FirstOrDefault();
                    }

                    if (vid != null)
                    {
                        videoizb.Add(vid);
                    }
                }


                ViewBag.OUK      = UserProgress.OUK;
                ViewBag.TBB      = UserProgress.TBB;
                ViewBag.language = language;


                return(View(videoizb.ToList()));
            }
            catch
            {
            }


            string ActionName = "favorites";


            return(RedirectToAction("ErrorLogOff", "Account", new { language = language, ActionName = ActionName }));
        }
Exemplo n.º 7
0
        // POST: api/Default
        public async Task <IHttpActionResult> Post([FromBody] UVideoLcompletionCs data)
        {
            ResponseUVideoLcompletion response = new ResponseUVideoLcompletion();

            if (data == null)
            {
                return(BadRequest("data null"));
            }
            if (data.VideoId == null || (data.TestTotal == null && data.FoolLook == null))
            {
                return(BadRequest("data null"));
            }

            VideoL video = await db.VideoLs.FindAsync(data.VideoId);

            if (video == null)
            {
                return(BadRequest("video null"));
            }

            try
            {
                string UserName = User.Identity.Name;

                UserInfo userinfo = await db.UserInfoes.FirstOrDefaultAsync(e => e.UserName == UserName);

                JVLO JV = await db.JVLOes.FirstOrDefaultAsync(e => e.UserName == UserName);

                bool LookVideo = true;
                bool Task      = true;
                bool Test      = true;

                LessonVideoTime look = userinfo.LessonVideoTimes.FirstOrDefault(e => e.LessonXId == video.XId);

                if (data.FoolLook == true)
                {
                    if (look == null)
                    {
                        LessonVideoTime newlook = new LessonVideoTime();
                        newlook.LessonXId = video.XId;
                        newlook.Status    = true;
                        userinfo.LessonVideoTimes.Add(newlook);
                        await db.SaveChangesAsync();
                    }
                    else if (look.Status == false)
                    {
                        look.Status = true;
                        await db.SaveChangesAsync();
                    }

                    response.msgfoollook = "ok";
                }

                if (look != null)
                {
                    if (look.Status == false)
                    {
                        LookVideo = false;
                    }
                }


                Models.Task task = await db.Tasks.FirstOrDefaultAsync(e => e.LessonXId == video.XId);

                if (task != null)
                {
                    UserTaskCheck UserTaskCheck = userinfo.UserTaskChecks.FirstOrDefault(e => e.TaskId == task.Id);
                    if (UserTaskCheck != null)
                    {
                        if (UserTaskCheck.Status == false)
                        {
                            Task = false;
                        }
                    }
                }



                var test = video.Tests.ToList();


                if (test.Count() > 0)
                {
                    if (Task == false)
                    {
                        response.msgtesttotal = "Task not completed";
                        Test = false;
                    }

                    if (LookVideo == false)
                    {
                        response.msgtesttotal = "Video not fully viewed";
                        Test = false;
                    }
                }


                if (test.Count() > 0 && Test == true)
                {
                    ValitO vo = userinfo.ValitOS.FirstOrDefault(e => e.VdeoLXId == video.XId);

                    int KB = vo != null ? vo.KB : 0;


                    if (data.TestTotal != null)
                    {
                        if (data.TestTotal > 0)
                        {
                            if (vo == null)
                            {
                                KB = (int)data.TestTotal;

                                ValitO newvo = new ValitO();
                                newvo.VdeoLXId = video.XId;
                                newvo.KB       = KB;
                                userinfo.ValitOS.Add(newvo);

                                await db.SaveChangesAsync();
                            }
                            else if (vo.KB < data.TestTotal)
                            {
                                KB    = (int)data.TestTotal;
                                vo.KB = KB;
                                await db.SaveChangesAsync();
                            }

                            response.msgtesttotal = "ok";
                        }
                    }

                    if (KB < 75)
                    {
                        Test = false;
                    }
                }



                if (LookVideo == true && Task == true && Test == true)
                {
                    //-----GET User ENABLE VIDEOXLs----------------------------------------
                    var Moduls_userLevel = await db.Modul_userLevel.Where(e => e.LevelId <= userinfo.LevelId).ToListAsync();

                    var Moduls         = Moduls_userLevel.Select(e => e.Modul).Where(e => e.Enable == true).ToList();
                    var EnableVideoXLs = new List <VideoXL>();
                    foreach (var Module in Moduls)
                    {
                        EnableVideoXLs.AddRange(Module.VideoXLs.Where(e => e.Enable == true).ToList());
                    }
                    //-----END------------------------------------------------------------


                    var vxl = EnableVideoXLs.OrderBy(e => e.XId).ToList();


                    VideoXL NextVideoXL = EnableVideoXLs.Where(e => e.XId > video.XId).OrderBy(e => e.XId).FirstOrDefault();


                    VideoXL vnXID = vxl.Where(e => e.XId > video.XId).OrderBy(e => e.XId).FirstOrDefault();


                    VideoL vn = null;


                    if (vnXID != null)
                    {
                        vn = await db.VideoLs.FirstOrDefaultAsync(e => e.XId == vnXID.XId && e.language == video.language);

                        if (vn == null && video.language != "ru")
                        {
                            vn = await db.VideoLs.FirstOrDefaultAsync(e => e.XId == vnXID.XId && e.language == "ru");
                        }
                    }

                    if (vn != null)
                    {
                        response.nextId = vn.Id;
                    }

                    if (NextVideoXL != null)
                    {
                        if (NextVideoXL.XId > JV.X)
                        {
                            JV.X = NextVideoXL.XId;
                            await db.SaveChangesAsync();
                        }
                    }
                }
                response.status = "ok";
                return(Json(response));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
Exemplo n.º 8
0
        // POST: api/Default
        public async Task <IHttpActionResult> Post([FromBody] VideoLessonsCs data)
        {
            ResponseVideoLs response = new ResponseVideoLs();

            var EnableVideoLs = new List <VideoL>();

            var UVideoLessons = new List <UVideoLessons>();


            try
            {
                string language = null;
                int?   MId      = null;

                if (data != null)
                {
                    language = data.language;
                    MId      = data.MId;
                }


                if (language == null)
                {
                    language = "ru";
                }

                string UserName = User.Identity.Name;

                UserInfo userinfo = await db.UserInfoes.FirstOrDefaultAsync(e => e.UserName == UserName);



                JVLO JV = await db.JVLOes.FirstOrDefaultAsync(e => e.UserName == UserName);

                var EnableVideoXLs = new List <VideoXL>();



                var Moduls_userLevel = await db.Modul_userLevel.Where(e => e.LevelId <= userinfo.LevelId).ToListAsync();



                var Moduls = Moduls_userLevel.Select(e => e.Modul).Where(e => e.Enable == true).ToList();

                if (MId != null)
                {
                    Moduls = Moduls.Where(e => e.XId == MId).ToList();
                }


                foreach (var Module in Moduls)
                {
                    EnableVideoXLs.AddRange(Module.VideoXLs.Where(e => e.Enable == true).ToList());
                }



                if (EnableVideoXLs.Count > 0)
                {
                    EnableVideoXLs = EnableVideoXLs.OrderBy(e => e.XId).ToList();



                    foreach (var videoXL in EnableVideoXLs)
                    {
                        VideoL addVideoL = videoXL.VideoLs.FirstOrDefault(e => e.language == language);
                        if (language != "ru" && addVideoL == null)
                        {
                            addVideoL = videoXL.VideoLs.FirstOrDefault(e => e.language == "ru");
                        }
                        if (addVideoL != null)
                        {
                            EnableVideoLs.Add(addVideoL);
                        }
                    }

                    foreach (var videoLs in EnableVideoLs)
                    {
                        string Image = videoLs.Iconimg != null?Url.Content(videoLs.Iconimg) : null;

                        bool Enable = true;
                        int  Like   = 0;
                        int  View   = 0;
                        int  minute = 0;

                        VideoLEM videLem = videoLs.VideoXL.VideoLEMs.FirstOrDefault();

                        if (videLem != null)
                        {
                            Like   = videLem.Likes;
                            View   = videLem.Eye;
                            minute = videLem.minute;
                        }


                        if (JV.X < videoLs.XId)
                        {
                            Image = videoLs.Iconimg != null?Url.Content(videoLs.Iconimg2) : null;

                            Enable = false;
                        }


                        string Date = null;
                        string Time = null;
                        if (videoLs.Date != null)
                        {
                            Date = videoLs.Date.Value.ToString("MM/dd/yyyy");
                            Time = videoLs.Date.Value.ToString("HH:mm:ss");
                        }

                        UVideoLessons.Add(new UVideoLessons {
                            Id     = videoLs.Id,
                            MId    = videoLs.Modul.XId,
                            lang   = videoLs.language,
                            Name   = videoLs.Name,
                            Image  = Image,
                            Like   = Like,
                            View   = View,
                            Date   = Date,
                            Time   = Time,
                            minute = minute,
                            Enable = Enable
                        });
                    }
                }

                response.status        = "ok";
                response.UVideoLessons = UVideoLessons;
                return(Json(response));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
Exemplo n.º 9
0
        public async Task <IHttpActionResult> Post([FromBody] TestCs data)
        {
            ResponseUTest response = new ResponseUTest();
            var           UTest    = new List <UTest>();

            string UserName = User.Identity.Name;

            try
            {
                UserInfo userinfo = await db.UserInfoes.FirstOrDefaultAsync(e => e.UserName == UserName);


                JVLO JV = await db.JVLOes.FirstOrDefaultAsync(e => e.UserName == UserName);

                if (data == null)
                {
                    return(BadRequest("data null"));
                }

                if (data.Id == null)
                {
                    return(BadRequest("data id null"));
                }


                VideoL VideoL = await db.VideoLs.FindAsync(data.Id);

                if (VideoL == null)
                {
                    return(BadRequest("VideoL null"));
                }

                if (VideoL.Modul.Enable != true)
                {
                    return(BadRequest("VideoLessons Modul Disable"));
                }

                if (VideoL.VideoXL.Enable != true)
                {
                    return(BadRequest("VideoLessons Disable"));
                }

                if (VideoL.Modul.Modul_userLevel.FirstOrDefault().LevelId > userinfo.LevelId)
                {
                    return(BadRequest("User level not available"));
                }

                if (VideoL.XId > JV.X)
                {
                    return(BadRequest("User level not available"));
                }
                if (VideoL.Tests.Count == 0)
                {
                    return(BadRequest("There is no test in the video lesson"));
                }



                int    total  = 0;
                ValitO valito = userinfo.ValitOS.FirstOrDefault(e => e.VdeoLXId == VideoL.XId);
                if (valito != null)
                {
                    total = valito.KB;
                }

                foreach (var test in VideoL.Tests)
                {
                    UTest.Add(new UTest
                    {
                        Question = test.Question,
                        A        = test.A,
                        B        = test.B,
                        C        = test.C,
                        D        = test.D,
                        E        = test.E,
                        Answer   = test.Answer
                    });
                }



                response.status = "ok";
                response.Total  = total;
                response.UTest  = UTest;

                return(Json(response));
            }

            catch (Exception ex) {
                return(BadRequest(ex.Message));
            }
        }