예제 #1
0
        public IHttpActionResult Add([FromBody] WishAddViewModel model)
        {
            var authToken   = Request.Headers.GetValues("authToken").FirstOrDefault()?.ToString() ?? null;
            var authTokenDb = _db.AuthenticationTokens.FirstOrDefault(at => at.Token.Equals(authToken));

            if (!authTokenDb?.IsTokenValid(authToken) ?? true)
            {
                return(Unauthorized());
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest("An error occurred while trying to add new wish, please try again later."));
            }

            Wishes wish = model;

            try
            {
                _db.Wishes.Add(wish);
                _db.SaveChanges();
            }
            catch (Exception)
            {
                return(BadRequest("An error occurred while trying to add new wish, please try again later."));
            }

            return(Ok());
        }
예제 #2
0
 public void AddWish(Wish wish)
 {
     if (Wishes != null)
     {
         Wishes.Add(wish);
     }
 }
예제 #3
0
        public JsonResult EndWish()
        {
            int result = 0;

            int wish_id = (Request.Form["wish_id"] == "") ? 0 : Convert.ToInt32(Request.Form["wish_id"]);

            if (wish_id == 0)
            {
                return(Json(result, JsonRequestBehavior.AllowGet));
            }

            Wishes wish = db.Wishes.Where(x => x.wish_id == wish_id).SingleOrDefault();

            if ((wish.wish_status == "fail") || (wish.wish_status == "done"))
            {
                return(Json(result, JsonRequestBehavior.AllowGet));
            }

            //Всем задачам в ожидании ставим дату и время запуска
            foreach (var t in db.Tasks.Where(x => x.task_wish_id == wish_id && x.task_status != "done" && x.task_status != "fail"))
            {
                t.task_startdate = DateTime.Now;
            }

            wish.wish_deadline = DateTime.Now;
            db.SaveChanges();

            return(Json(result, JsonRequestBehavior.AllowGet));
        }
예제 #4
0
        //DELETE
        public ActionResult DeleteConfirm(int id)
        {
            string       query          = "select * from wishes where id=@id";
            SqlParameter param          = new SqlParameter("@id", id);
            Wishes       selectedwishes = db.Wishes.SqlQuery(query, param).FirstOrDefault();

            return(View(selectedwishes));
        }
예제 #5
0
        public ActionResult Show(int id)
        {
            string query          = "SELECT * FROM wishes where id = @id";
            var    parameter      = new SqlParameter("@id", id);
            Wishes selectedwishes = db.Wishes.SqlQuery(query, parameter).FirstOrDefault();

            return(View(selectedwishes));
        }
예제 #6
0
 void Awake()
 {
     if (Instance != null && Instance != this)
     {
         Debug.Log("wishes got destroyeed\n");
         Destroy(gameObject);
     }
     Instance = this;
 }
예제 #7
0
        public IActionResult NewWishIndex(Wishes model)
        {
            Wishes myWishes = new Wishes {
                ID = 2, wish1 = model.wish1, wish2 = model.wish2, wish3 = model.wish3
            };
            string jsonWishes = JsonConvert.SerializeObject(myWishes);

            HttpContext.Session.SetString("wish", jsonWishes);
            return(View("WishIndex"));
        }
예제 #8
0
        public IActionResult WishIndex()
        {
            Wishes myWishes = new Wishes {
                ID = 1, wish1 = "Green card", wish2 = "Ayew back", wish3 = "Wisdom"
            };
            string jsonWishes = JsonConvert.SerializeObject(myWishes);

            HttpContext.Session.SetString("wish", jsonWishes);
            return(View());
        }
예제 #9
0
        public IActionResult WishIndex()
        {
            Wishes myWishes = new Wishes {
                ID = 1, wish1 = "Money", wish2 = "Happiness", wish3 = "Fame"
            };
            string jsonWishes = JsonConvert.SerializeObject(myWishes);

            HttpContext.Session.SetString("wish", jsonWishes);
            return(View());
        }
예제 #10
0
        public IActionResult NewWishIndex(int?ID)
        {
            Wishes myWishes = new Wishes {
                ID = 2, wish1 = Request.Form["wish1"], wish2 = Request.Form["wish2"], wish3 = Request.Form["wish3"]
            };
            string jsonWishes = JsonConvert.SerializeObject(myWishes);

            HttpContext.Session.SetString("wish", jsonWishes);
            return(View("WishIndex"));
        }
        private void ToggleCheckedWish(object wishID)
        {
            Wish wish       = Wishes.FirstOrDefault(w => w.WishID == int.Parse(wishID.ToString()));
            bool isChecking = !wish.IsChecked;

            wish.IsChecked = isChecking;
            if (isChecking)
            {
                // wish.Buyer = currentUser
                // currentUser.WishedBuying.Add(wish);
            }
            else
            {
                // wish.Buyer = null;
                // currentUser.WishedBuying.Remove(w => w.wishID = wish.wishID);
            }
        }
        private async void PostWish(Wish wish)
        {
            if (wish.Title == null || wish.Title.Trim().Equals(""))
            {
                DisplayDialog("Invalid Wish.", "Please enter a name for the wish.");
                return;
            }
            if (wish.Description == null || wish.Description.Trim().Equals(""))
            {
                DisplayDialog("Invalid Wish.", "Please enter a description for the wish.");
                return;
            }
            if (wish.Categorie == WishCategorie.DEFAULT)
            {
                DisplayDialog("Invalid Wish.", "Please enter a category for the wish.");
                return;
            }
            string wishJson = JsonConvert.SerializeObject(wish);

            Debug.Write(wishJson);
            HttpClient client = new HttpClient();
            var        res    = await client.PostAsync("http://localhost:65172/api/wishes/", new StringContent(wishJson, System.Text.Encoding.UTF8, "application/json"));

            Debug.Write(res);
            if (res.Content != null)
            {
                string newWishJson = await res.Content.ReadAsStringAsync();

                Wishes.Add(JsonConvert.DeserializeObject <Wish>(newWishJson));
            }
            //sorting the wishes by Category then by Title
            Wishes          = new ObservableCollection <Wish>(Wishes.OrderBy(val => val.Categorie).ThenBy(val => val.Title));
            WishList.Wishes = Wishes;


            //_parent.WishListsOwning.Where(val => val.WishListID == WishList.WishListID).SingleOrDefault().Wishes = Wishes;
            _parent.CurrentData = new WishListViewModel(WishList, this._parent);
        }
예제 #13
0
        public IHttpActionResult Edit([FromBody] Wishes model)
        {
            if (model == null)
            {
                return(BadRequest("An error occurred while trying to edit wish, please try again later."));
            }

            var authToken   = Request.Headers.GetValues("authToken").FirstOrDefault()?.ToString() ?? null;
            var authTokenDb = _db.AuthenticationTokens.FirstOrDefault(at => at.Token.Equals(authToken));

            if (!authTokenDb?.IsTokenValid(authToken) ?? true)
            {
                return(Unauthorized());
            }

            var wish = _db.Wishes.FirstOrDefault(w => !w.IsDeleted && w.Id == model.Id);

            if (wish == null)
            {
                return(BadRequest("This wish doesn't exist or it has been deleted."));
            }

            try
            {
                wish.Amount = model.Amount;
                wish.Name   = model.Name;

                _db.SaveChanges();
            }
            catch (Exception)
            {
                return(BadRequest("An error occurred while trying to add new wish, please try again later."));
            }

            return(Ok());
        }
예제 #14
0
        public JsonResult RepeatWish()
        {
            var result = -1;

            try
            {
                //Вытаскиваем данные из запроса
                int wish_id     = Convert.ToInt32(Request.Form["wish_id"]);
                int user_id     = Convert.ToInt32(Request.Form["user_id"]);
                int repeat_type = Convert.ToInt32(Request.Form["repeat_type"]);

                DateTime          deadlineValue = DateTime.ParseExact(Request.Form["deadlineValue"].ToString(), "yyyy-MM-ddTHH:mm", System.Globalization.CultureInfo.InvariantCulture);
                int?              attemptsCount = Request.Form["attemptsCount"].ToString() != "null" ? Convert.ToInt32(Request.Form["attemptsCount"].ToString()) : (int?)null;
                List <parameters> ParamList     = JsonConvert.DeserializeObject <List <parameters> >(Request.Form["parameters"].ToString());
                List <places>     PlaceList     = JsonConvert.DeserializeObject <List <places> >(Request.Form["places"].ToString());

                Wishes w = db.Wishes.Where(x => x.wish_id == wish_id).SingleOrDefault();

                int report_type_id = db.Wish_report_relation.Where(x => x.wrr_wish_id == wish_id).SingleOrDefault().wrr_report_type_id;

                //Доступы к просмотру
                int[] Access_users = Array.ConvertAll(Request.Form.GetValues("access_user"), s => int.Parse(s));

                string wish_report_type_xml = w.wish_report_type_xml;

                string new_xml = String.Empty;

                List <ParameterType> ParameterList = new List <ParameterType>();

                if (!String.IsNullOrEmpty(wish_report_type_xml))
                {
                    XmlSerializer serializer = new XmlSerializer(typeof(ReportModel));

                    using (TextReader reader = new StringReader(wish_report_type_xml))
                    {
                        ReportModel report = (ReportModel)serializer.Deserialize(reader);

                        foreach (var p in report.Parameters)
                        {
                            ParameterList.Add(new ParameterType
                            {
                                Name  = p.ParameterName,
                                Alias = p.ParameterAlias,
                                Type  = p.ParameterDataType,
                                Value =
                                    (p.ParameterDataType == "startdate") || (p.ParameterDataType == "enddate")
                                    ? DateTime.ParseExact(ParamList.Where(x => x.name == p.ParameterName).SingleOrDefault().value, "yyyy-MM-ddTHH:mm", System.Globalization.CultureInfo.InvariantCulture).ToString("yyyy-MM-dd HH:mm:ss")
                                    : ParamList.Where(x => x.name == p.ParameterName).SingleOrDefault().value
                            });
                        }

                        new_xml  = "<?xml version=\"1.0\" encoding=\"utf-16\"?>";
                        new_xml += "<TableDataSource SelectCommand=\"" + SecurityElement.Escape(report.SelectCommand) + "\">";
                        foreach (var c in report.Columns)
                        {
                            new_xml += "<Column Name=\"" + c.ColumnName + "\" Type=\"" + c.ColumnType + "\" Alias=\"" + c.ColumnAlias + "\" />";
                        }
                        if (ParamList.Count != 0)
                        {
                            foreach (var p in ParameterList)
                            {
                                new_xml += "<CommandParameter Name=\"" + p.Name + "\" Alias=\"" + p.Alias + "\" DataType=\"" + p.Type + "\" Value=\"" + p.Value + "\" />";
                            }
                        }
                        new_xml += "</TableDataSource>";
                    }
                }
                else
                {
                    return(Json(result, JsonRequestBehavior.AllowGet));
                }

                //Обновляем задание
                if (repeat_type == 0)
                {
                    w.wish_createdate     = Convert.ToDateTime(DateTime.Now);
                    w.wish_deadline       = deadlineValue;
                    w.wish_total_attempts = attemptsCount;
                    w.wish_status         = "not_ready";
                    w.wish_user_id        = user_id;
                    db.SaveChanges();

                    //Обновляем задачи
                    foreach (var p in PlaceList)
                    {
                        Tasks Task = db.Tasks.Where(x => x.task_wish_id == wish_id && x.task_place_id == p.id).SingleOrDefault();
                        Task.task_startdate       = DateTime.ParseExact(p.startdate, "yyyy-MM-ddTHH:mm", System.Globalization.CultureInfo.InvariantCulture);
                        Task.task_number_attempts = 0;
                        Task.task_status          = "new";
                        Task.task_last_error_text = null;
                    }
                    db.SaveChanges();

                    //Обновляем доступы
                    Wish_report_relation wrr = db.Wish_report_relation.Where(x => x.wrr_wish_id == wish_id).SingleOrDefault();

                    if (Access_users.Length != 0)
                    {
                        wrr.wrr_access_type = (short)((Access_users[0] == -1) ? 1 : (Access_users[0] == 0) ? 0 : 2);
                        db.SaveChanges();

                        //Конкретные пользователи
                        if (wrr.wrr_access_type == 2)
                        {
                            //Пользователи ДО редактирования
                            List <Wish_user_relation> Wur = new List <Wish_user_relation>();
                            foreach (Wish_user_relation wur in db.Wish_user_relation.Where(x => x.wur_wish_id == wish_id))
                            {
                                Wur.Add(wur);
                            }

                            foreach (Users u in db.Users)
                            {
                                if (Access_users.Contains(u.user_id))
                                {
                                    if (Wur.Find(x => x.wur_user_id == u.user_id) == null)
                                    {
                                        db.Wish_user_relation.Add(new Wish_user_relation()
                                        {
                                            wur_wish_id = (int)wish_id, wur_user_id = u.user_id
                                        });
                                    }
                                }
                                else
                                {
                                    if (Wur.Find(x => x.wur_user_id == u.user_id) != null)
                                    {
                                        db.Wish_user_relation.Remove(Wur.Find(x => x.wur_user_id == u.user_id));
                                    }
                                }
                            }
                            db.SaveChanges();
                        }
                    }
                    //Доступ для всех
                    else
                    {
                        wrr.wrr_access_type = 0;
                        db.SaveChanges();
                    }

                    w.wish_status = "new";
                    db.SaveChanges();

                    result = wish_id;
                }
                else
                {
                    //Создаем задание
                    Wishes Wish = new Wishes();
                    Wish.wish_createdate       = Convert.ToDateTime(DateTime.Now);
                    Wish.wish_deadline         = deadlineValue;
                    Wish.wish_total_attempts   = attemptsCount;
                    Wish.wish_report_type_name = w.wish_report_type_name;
                    Wish.wish_status           = "not_ready";
                    Wish.wish_report_type_xml  = new_xml;
                    Wish.wish_user_id          = user_id;
                    db.Wishes.Add(Wish);
                    db.SaveChanges();

                    //Создаем задачи
                    foreach (var p in PlaceList)
                    {
                        Tasks Task = new Tasks();
                        Task.task_startdate       = DateTime.ParseExact(p.startdate, "yyyy-MM-ddTHH:mm", System.Globalization.CultureInfo.InvariantCulture);;
                        Task.task_wish_id         = Wish.wish_id;
                        Task.task_place_id        = p.id;
                        Task.task_number_attempts = 0;
                        Task.task_status          = "new";
                        Task.task_last_error_text = null;
                        db.Tasks.Add(Task);
                    }

                    //Создаем доступы
                    if (Access_users.Length != 0)
                    {
                        Wish_report_relation wrr = new Wish_report_relation();
                        wrr.wrr_wish_id        = Wish.wish_id;
                        wrr.wrr_report_type_id = report_type_id;
                        wrr.wrr_access_type    = (short)((Access_users[0] == -1) ? 1 : (Access_users[0] == 0) ? 0 : 2);
                        db.Wish_report_relation.Add(wrr);
                        db.SaveChanges();

                        //Конкретные пользователи
                        if (wrr.wrr_access_type == 2)
                        {
                            foreach (int item in Access_users)
                            {
                                Wish_user_relation wur = new Wish_user_relation();
                                wur.wur_wish_id = Wish.wish_id;
                                wur.wur_user_id = item;
                                db.Wish_user_relation.Add(wur);
                            }
                            db.SaveChanges();
                        }
                    }
                    //Доступ для всех
                    else
                    {
                        Wish_report_relation wrr = new Wish_report_relation();
                        wrr.wrr_wish_id        = Wish.wish_id;
                        wrr.wrr_report_type_id = report_type_id;
                        wrr.wrr_access_type    = 0;
                        db.Wish_report_relation.Add(wrr);
                        db.SaveChanges();
                    }

                    Wish.wish_status = "new";
                    db.SaveChanges();
                    result = Wish.wish_id;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(Json(result, JsonRequestBehavior.AllowGet));
        }
예제 #15
0
 public void AddWish(Wish item)
 {
     Wishes.Add(item);
 }
예제 #16
0
 public void AddWish(Wish wish)
 {
     Wishes.Add(wish);
 }
예제 #17
0
 public void RemoveWish(Wish wish)
 {
     Wishes.Remove(wish);
 }
예제 #18
0
 public void navigateWishesList()
 {
     Wishes.Click();
 }
예제 #19
0
 public PeekWishesEditViewModel(IRepository <Wishes> repository, Guests currentGuest)
 {
     CurrentGuest = currentGuest;
     Repository   = repository;
     CurrentWish  = new Wishes();
 }