public IActionResult Index(GreetingCard model, string ddlColour, string ddlFontStyle, string chkPictureChoice)
        {
            GreetingCard objResult = new GreetingCard();

            objResult.colour        = ddlColour;
            objResult.fontStyle     = ddlFontStyle;
            objResult.fontSize      = model.fontSize + "px";
            objResult.borderStyle   = model.borderStyle;
            objResult.pictureChoice = chkPictureChoice;
            objResult.message       = model.message;
            ViewBag.result          = objResult;

            if (ViewBag.result.pictureChoice == "true")
            {
                ViewBag.pictureURL = "~/Images/waterlilis.jpg";
            }
            List <SelectListItem> lstColour = new List <SelectListItem>();

            lstColour.Add(new SelectListItem()
            {
                Text  = "Black",
                Value = "black"
            });
            lstColour.Add(new SelectListItem()
            {
                Text  = "Pink",
                Value = "pink"
            });
            lstColour.Add(new SelectListItem()
            {
                Text  = "Red",
                Value = "red"
            });
            lstColour.Add(new SelectListItem()
            {
                Text  = "Yellow",
                Value = "yellow"
            });
            ViewBag.ddlColour = lstColour;

            List <SelectListItem> lstFontStyle = new List <SelectListItem>();

            lstFontStyle.Add(new SelectListItem()
            {
                Text  = "Arial",
                Value = "Arial"
            });
            lstFontStyle.Add(new SelectListItem()
            {
                Text  = "Comic Sans MS",
                Value = "Comic Sans MS"
            });
            lstFontStyle.Add(new SelectListItem()
            {
                Text  = "Lucida Console",
                Value = "Lucida Console"
            });
            ViewBag.ddlFontStyle = lstFontStyle;
            return(View());
        }
        public async Task <IActionResult> CountGreetingCardsPerTheme()
        {
            var selectedGreetingCards = from g in _context.GreetingCards
                                        group g by g.theme;

            if (selectedGreetingCards.Any())
            {
                Dictionary <string, int> greetingCardPerThemeCnt = new Dictionary <string, int>();
                foreach (IGrouping <string, GreetingCard> c in selectedGreetingCards)
                {
                    greetingCardPerThemeCnt.Add(c.Key, c.Count(g => g.theme == c.First().theme));
                }
                _context.GreetingCards.First().groupByPerTheme = greetingCardPerThemeCnt;
                _context.GreetingCards.First().ImagesDB        = _context.Images;
                return(View("Index", await _context.GreetingCards.ToListAsync()));
            }
            else
            {
                GreetingCard greetingCard = new GreetingCard {
                    ImagesDB = _context.Images
                };
                List <GreetingCard> greetingCardEnumerable = new List <GreetingCard>();
                greetingCardEnumerable.Add(greetingCard);

                return(View("Index", greetingCardEnumerable));
            }
        }
예제 #3
0
        public bool SaveCard(GreetingCard card)
        {
            try
            {
                using (SqlConnection conn = new SqlConnection(connectionString))
                {
                    conn.Open();

                    SqlCommand cmd = new SqlCommand(SQL_InsertCard, conn);
                    cmd.Parameters.AddWithValue("@tempId", card.TemplateId);
                    cmd.Parameters.AddWithValue("@toEmail", card.ToEmail);
                    cmd.Parameters.AddWithValue("@toName", card.ToName);
                    cmd.Parameters.AddWithValue("@message", card.Message);
                    cmd.Parameters.AddWithValue("@fromName", card.FromName);
                    cmd.Parameters.AddWithValue("@fromEmail", card.FromEmail);

                    int rowsAffected = cmd.ExecuteNonQuery();

                    return(rowsAffected > 0);
                }
            }

            catch (SqlException ex)
            {
                throw;
            }
        }
        public IActionResult WithImageDigitalSize()
        {
            var selectedGreetingCards = from g in _context.GreetingCards
                                        join image in _context.Images on g.imageID equals image.ID
                                        select new { g, image };

            if (selectedGreetingCards.Any())
            {
                List <GreetingCard> greetingCards = new List <GreetingCard>();
                greetingCards.AddRange(_context.GreetingCards);

                int numberOfItems = selectedGreetingCards.Count();
                for (int i = 0; i < numberOfItems; i++)
                {
                    int digitalSize = selectedGreetingCards.ToArray()[i].image.digitalSize;
                    greetingCards.ElementAt(i).imageDigitalSize = digitalSize;
                }

                _context.GreetingCards.First().ImagesDB = _context.Images;
                return(View(greetingCards));
            }
            else
            {
                GreetingCard greetingCard = new GreetingCard {
                    ImagesDB = _context.Images
                };
                List <GreetingCard> greetingCardEnumerable = new List <GreetingCard>();
                greetingCardEnumerable.Add(greetingCard);

                return(View("Index", greetingCardEnumerable));
            }
        }
예제 #5
0
        public async Task StartAsync(IDialogContext context)
        {
            var channel = context.Activity.ChannelId;

            switch (channel)
            {
            case "facebook":
            {
                var name    = "FirstName SecondName";
                var message = string.Format(MessagesResource.Greeting, name);

                var facebooksender           = new SendFacebookTemplate(context);
                var greetingFacebookTemplate = new GreetingFacebookTemplate(message).GetTemplate();
                await facebooksender.Send(greetingFacebookTemplate);

                break;
            }

            default:
            {
                var name    = context.Activity.From.Name;
                var message = string.Format(MessagesResource.Greeting, name);

                var sender = new SendCardToConversation(context);
                var greatingDefaultTemplate = new GreetingCard(message);
                await sender.SendCard(greatingDefaultTemplate);

                break;
            }
            }

            context.Wait(MessageReceivedAsync);
        }
 private void AddToShoppingCart(object sender, RoutedEventArgs e)
 {
     if (PrintTypeComboBox.SelectedItem != null)
     {
         PrintBase item;
         switch (PrintTypeComboBox.SelectedIndex)
         {
             case 0:
                 item = new Print(CurrentPhoto.Source as BitmapSource); break;
             case 1:
                 item = new GreetingCard(CurrentPhoto.Source as BitmapSource); break;
             case 2:
                 item = new SShirt(CurrentPhoto.Source as BitmapSource); break;
             default:
                 return;
         }
         ShoppingCart.Add(item);
         ShoppingCartListBox.ScrollIntoView(item);
         ShoppingCartListBox.SelectedItem = item;
         if (false == CheckoutButton.IsEnabled)
             CheckoutButton.IsEnabled = true;
         if (false == RemoveButton.IsEnabled)
             RemoveButton.IsEnabled = true;
     }
 }
예제 #7
0
        public async Task Send()
        {
            var channel = _context.Activity.ChannelId;

            switch (channel)
            {
            case "facebook":
            {
                var facebooksender           = new SendFacebookTemplate(_context);
                var greetingFacebookTemplate = new GreetingFacebookTemplate(MessagesResource.GreetingVariant).GetTemplate();
                await facebooksender.Send(greetingFacebookTemplate);

                break;
            }

            default:
            {
                var sender = new SendCardToConversation(_context);
                var greatingDefaultTemplate = new GreetingCard(MessagesResource.GreetingVariant);
                await sender.SendCard(greatingDefaultTemplate);

                break;
            }
            }
        }
예제 #8
0
        public ActionResult GreetingCard(int id = 0)
        {
            GreetingCard       gc    = new GreetingCard();
            CardTemplateSqlDAL dal   = new CardTemplateSqlDAL();
            CardTemplate       temp  = dal.GetTemplate(id);
            FullCard           model = new FullCard(temp, gc);


            return(View("GreetingCard", model));
        }
        public async Task <IActionResult> Create([Bind(("ID,theme,sendertUserEmail,senderUserFullName,recipientUserEmail,sentencePrefix,fullSentence,sentenceSuffix,image,publishedToFacebook"))] GreetingCard greetingCard)
        {
            if (ModelState.IsValid)
            {
                var recipientUser = _context.Users.FirstOrDefaultAsync(m => m.Email == greetingCard.recipientUserEmail).Result;
                if (recipientUser != default)
                {
                    var recipientUserFirstName = recipientUser.FirstName;
                    var recipientUserLastName  = recipientUser.LastName;
                    greetingCard.recipientUserFullName = recipientUserFirstName + " " + recipientUserLastName;
                    greetingCard.fullSentence          = greetingCard.sentencePrefix + ", " + recipientUserFirstName + "! " + greetingCard.sentenceSuffix;
                }
                else
                {
                    greetingCard.recipientUserFullName = greetingCard.recipientUserEmail;
                    greetingCard.recipientUserEmail    = "*****@*****.**";
                    greetingCard.fullSentence          = greetingCard.sentencePrefix + ", " + greetingCard.recipientUserFullName + "! " + greetingCard.sentenceSuffix;
                }

                Image selectedImage = _context.Images.FirstOrDefaultAsync(m => m.imageName == greetingCard.image).Result;
                if (selectedImage != default)
                {
                    greetingCard.image     = selectedImage.imagePath;
                    greetingCard.imageID   = selectedImage.ID;
                    greetingCard.imageName = selectedImage.imageName;
                }

                var sentence = _context.SentimentSentences.FirstOrDefaultAsync(m => m.prefix == greetingCard.sentencePrefix && m.suffix == greetingCard.sentenceSuffix).Result;
                if (sentence == default)
                {
                    var sentenceBySuffix = _context.SentimentSentences.FirstOrDefaultAsync(m => m.suffix == greetingCard.sentenceSuffix).Result;
                    if (sentenceBySuffix != default)
                    {
                        var newSentenceToDB = new SentimentSentence {
                            prefix             = greetingCard.sentencePrefix, suffix = greetingCard.sentenceSuffix, complexity = sentenceBySuffix.complexity,
                            recipientUserEmail = greetingCard.recipientUserEmail, recipientUserFirstName = greetingCard.recipientUserFullName, theme = greetingCard.theme
                        };
                        _context.SentimentSentences.Add(newSentenceToDB);
                    }
                }

                _context.Add(greetingCard);
                await _context.SaveChangesAsync();

                if (greetingCard.publishedToFacebook)
                {
                    postToFacebook(greetingCard.senderUserFullName, greetingCard.sentencePrefix, greetingCard.recipientUserFullName, greetingCard.sentenceSuffix);
                }
                return(RedirectToAction(nameof(Index)));
            }

            greetingCard.ImagesDB             = _context.Images;
            greetingCard.SentimentSentencesDB = _context.SentimentSentences;
            return(View(greetingCard));
        }
 public async Task <IActionResult> Index()
 {
     if (_context.GreetingCards.Any())
     {
         _context.GreetingCards.First().ImagesDB = _context.Images;
         return(View(await _context.GreetingCards.ToListAsync()));
     }
     else
     {
         GreetingCard greetingCard = new GreetingCard {
             ImagesDB = _context.Images
         };
         List <GreetingCard> greetingCardEnumerable = new List <GreetingCard>();
         greetingCardEnumerable.Add(greetingCard);
         return(View(greetingCardEnumerable));
     }
 }
예제 #11
0
        public ActionResult SavedCard(GreetingCard card, int templateId)
        {
            if (!ModelState.IsValid)
            {
                return(RedirectToAction("GreetingCard", new { id = templateId }));
            }


            else
            {
                CardTemplateSqlDAL Cdal = new CardTemplateSqlDAL();
                CardTemplate       temp = Cdal.GetTemplate(templateId);
                GreetingCardSqlDal Gdal = new GreetingCardSqlDal();
                card.TemplateId = templateId;
                Gdal.SaveCard(card);
                FullCard fullCard = new FullCard(temp, card);
                return(View("SavedCard", fullCard));
            }
        }
        // GET: GreetingCards/Create
        public IActionResult Create()
        {
            var model = new GreetingCard {
                SentimentSentencesDB = _context.SentimentSentences, ImagesDB = _context.Images
            };

            //------------SUGGEST A GREETING CARD--------------------------
            //if there are enough users for K-Means, find a greeting card for suggestion
            if (_context.Users.Count() >= 10)
            {
                //find the logged in user
                var  email        = User.Identity.Name;
                User loggedInUser = _context.Users.FirstOrDefault(u => u.Email == email);

                //----------- K MEANS (in our case 9-means) --------------------
                List <double[]> observations = kMeansGetObservations();
                //array's size is the number of observations, containing the label for each observation (in the observations' order)
                int[] labels = clusterKMeans(observations.ToArray());

                int userIndex = FindUserIndexInDb(loggedInUser);
                if (userIndex == -1)
                {
                    return(View(model));
                }
                else
                {
                    //get the user's label
                    int userLabel = labels[userIndex];

                    //find whether another user with the same label exists
                    int userFromTheSameLabelIndex = -1;
                    for (int i = 0; i < labels.Length; i++)
                    {
                        if (labels[i] == userLabel)
                        {
                            userFromTheSameLabelIndex = i;
                        }
                    }

                    //there isn't another user from the same label
                    if (userFromTheSameLabelIndex == -1)
                    {
                        return(View(model));
                    }
                    //there exists another user from the same label
                    else
                    {
                        User userFromTheSameLabel = _context.Users.ToArray()[userFromTheSameLabelIndex];

                        //find all greeting cards that the other user created
                        List <GreetingCard> otherUserGreetingCards = new List <GreetingCard>();
                        foreach (GreetingCard g in _context.GreetingCards)
                        {
                            if (g.sendertUserEmail == userFromTheSameLabel.Email)
                            {
                                otherUserGreetingCards.Add(g);
                            }
                        }

                        //the other user (from the same label) created some greeting card
                        //choose one at random and return it to the view
                        if (otherUserGreetingCards.Any())
                        {
                            Random r      = new Random();
                            int    random = r.Next(0, otherUserGreetingCards.Count());

                            GreetingCard toReturn = otherUserGreetingCards.ToArray()[random];
                            toReturn.ImagesDB             = _context.Images;
                            toReturn.SentimentSentencesDB = _context.SentimentSentences;

                            return(View(toReturn));
                        }
                    }
                }
                return(View(model));
            }
            else
            {
                return(View(model));
            }
        }
        public async Task <IActionResult> Search(string theme, string fullSentence, string image)
        {
            var selectedGreetingCards = from g in _context.GreetingCards
                                        select g;

            //all three search parameters were given
            if (!string.IsNullOrEmpty(theme) && !string.IsNullOrEmpty(fullSentence) && !string.IsNullOrEmpty(theme))
            {
                selectedGreetingCards = selectedGreetingCards.Where(g => g.theme == theme && g.fullSentence == fullSentence &&
                                                                    g.imageName == image);
            }

            //only "theme" and "full sentence" were given
            else if (!string.IsNullOrEmpty(theme) && !string.IsNullOrEmpty(fullSentence) && string.IsNullOrEmpty(image))
            {
                selectedGreetingCards = selectedGreetingCards.Where(g => g.theme == theme && g.fullSentence == fullSentence);
            }

            //only "theme" and "image" were given
            else if (!string.IsNullOrEmpty(theme) && string.IsNullOrEmpty(fullSentence) && !string.IsNullOrEmpty(image))
            {
                selectedGreetingCards = selectedGreetingCards.Where(g => g.theme == theme && g.imageName == image);
            }

            //only "full sentence" and "image" were given
            else if (string.IsNullOrEmpty(theme) && !string.IsNullOrEmpty(fullSentence) && !string.IsNullOrEmpty(image))
            {
                selectedGreetingCards = selectedGreetingCards.Where(g => g.fullSentence == fullSentence && g.imageName == image);
            }

            //only "full sentence" was given
            else if (string.IsNullOrEmpty(theme) && !string.IsNullOrEmpty(fullSentence) && string.IsNullOrEmpty(image))
            {
                selectedGreetingCards = selectedGreetingCards.Where(g => g.fullSentence == fullSentence);
            }

            //only "theme" was given
            else if (!string.IsNullOrEmpty(theme) && string.IsNullOrEmpty(fullSentence) && string.IsNullOrEmpty(image))
            {
                selectedGreetingCards = selectedGreetingCards.Where(g => g.theme == theme);
            }

            //only "image" was given
            else if (string.IsNullOrEmpty(theme) && string.IsNullOrEmpty(fullSentence) && !string.IsNullOrEmpty(image))
            {
                selectedGreetingCards = selectedGreetingCards.Where(g => g.imageName == image);
            }

            //--------- search returned result ---------------
            if (selectedGreetingCards.Any())
            {
                selectedGreetingCards.First().ImagesDB = _context.Images;
                return(View("Index", await selectedGreetingCards.ToListAsync()));
            }

            //---------search returns empty--------------------
            else
            {
                GreetingCard greetingCard = new GreetingCard {
                    ImagesDB = _context.Images
                };
                List <GreetingCard> greetingCardEnumerable = new List <GreetingCard>();
                greetingCardEnumerable.Add(greetingCard);

                return(View("Index", greetingCardEnumerable));
            }
        }
        public async Task <IActionResult> Edit(int id, [Bind("ID,theme,sendertUserEmail,senderUserFullName,recipientUserEmail,sentencePrefix,fullSentence,sentenceSuffix,image,publishedToFacebook")] GreetingCard greetingCard)
        {
            if (id != greetingCard.ID)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    var recipientUser = _context.Users.FirstOrDefaultAsync(m => m.Email == greetingCard.recipientUserEmail).Result;
                    if (recipientUser != default)
                    {
                        var recipientUserFirstName = recipientUser.FirstName;
                        var recipientUserLastName  = recipientUser.LastName;
                        greetingCard.recipientUserFullName = recipientUserFirstName + " " + recipientUserLastName;
                        greetingCard.fullSentence          = greetingCard.sentencePrefix + ", " + recipientUserFirstName + "! " + greetingCard.sentenceSuffix;
                    }
                    else
                    {
                        greetingCard.recipientUserFullName = greetingCard.recipientUserEmail;
                        greetingCard.recipientUserEmail    = "*****@*****.**";
                        greetingCard.fullSentence          = greetingCard.sentencePrefix + ", " + greetingCard.recipientUserFullName + "! " + greetingCard.sentenceSuffix;
                    }

                    Image selectedImage = _context.Images.FirstOrDefaultAsync(m => m.imageName == greetingCard.image).Result;
                    if (selectedImage != default)
                    {
                        greetingCard.image     = selectedImage.imagePath;
                        greetingCard.imageID   = selectedImage.ID;
                        greetingCard.imageName = selectedImage.imageName;
                    }

                    var sentence = _context.SentimentSentences.FirstOrDefaultAsync(m => m.prefix == greetingCard.sentencePrefix && m.suffix == greetingCard.sentenceSuffix).Result;
                    if (sentence == default)
                    {
                        var sentenceBySuffix = _context.SentimentSentences.FirstOrDefaultAsync(m => m.suffix == greetingCard.sentenceSuffix).Result;
                        if (sentenceBySuffix != default)
                        {
                            var newSentenceToDB = new SentimentSentence
                            {
                                prefix                 = greetingCard.sentencePrefix,
                                suffix                 = greetingCard.sentenceSuffix,
                                complexity             = sentenceBySuffix.complexity,
                                recipientUserEmail     = greetingCard.recipientUserEmail,
                                recipientUserFirstName = greetingCard.recipientUserFullName,
                                theme = greetingCard.theme
                            };
                            _context.SentimentSentences.Add(newSentenceToDB);
                        }
                    }

                    _context.Update(greetingCard);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!GreetingCardsExists(greetingCard.ID))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(greetingCard));
        }