Example #1
0
        public async Task <IActionResult> OnPostAgreeAsync(int id, int fromID, int pageIndex)
        {
            string OwenrID = UserManager.GetUserId(User);

            if (OwenrID == null)
            {
                return(Challenge());
            }

            Agree ExistingAgree = await Context.Agrees
                                  .Where(a => a.MessageID == id)
                                  .Where(a => a.ProfileID == OwenrID)
                                  .FirstOrDefaultAsync();

            if (ExistingAgree == null)
            {
                Agree agree = new Agree
                {
                    MessageID  = id,
                    ProfileID  = OwenrID,
                    UpdateTime = DateTime.Now
                };
                Context.Agrees.Add(agree);
                await CheckMissionBeAgreed(id);

                await Context.SaveChangesAsync();
            }
            else
            {
                Context.Agrees.Remove(ExistingAgree);
                await Context.SaveChangesAsync();
            }

            return(RedirectToPage("./Details", "OnGet", new { id = fromID, pageIndex }, id.ToString()));
        }
Example #2
0
        public Agree ClientVisit_Get(long id)
        {
            try
            {
                List <OracleParameter> parameters = new List <OracleParameter>();
                parameters.AddRange(new List <OracleParameter> {
                    new OracleParameter()
                    {
                        ParameterName = "i_agree_id", OracleDbType = OracleDbType.Int64, Value = id
                    },
                    new OracleParameter()
                    {
                        ParameterName = "o_agree_rc", OracleDbType = OracleDbType.RefCursor, Direction = ParameterDirection.Output
                    }
                });

                Agree cv = Execute_Get(AgreeMaterializer.Instance, "procedure", parameters);

                return(cv);
            }
            catch (OracleException ex)
            {
                Logger.Error("ClientVisit_Get: " + id + "\n\r" + ex.Message);

                return(null);
            }
        }
Example #3
0
        public async Task <IActionResult> Disagree(int id)
        {
            if (!SignInManager.IsSignedIn(User))
            {
                return(new ChallengeResult());
            }
            if (!EmergingTechnologiesFeedbackExists(id))
            {
                return(NotFound());
            }

            string cookie = HttpContext.Request.Cookies[".AspNetCore.Identity.Application"];
            String hash   = "";

            if (!String.IsNullOrEmpty(cookie))
            {
                MD5           md5  = MD5.Create();
                byte[]        data = md5.ComputeHash(Encoding.UTF8.GetBytes(cookie));
                StringBuilder res  = new StringBuilder();
                for (int i = 0; i < data.Length; i++)
                {
                    res.Append(data[i].ToString("x2"));
                }
                hash = res.ToString();

                // if had disagree
                bool hasDisagree = Context.agrees.Any(i => (i.TechFeedbackId == id && i.AgreeOrDisagree == DataConstants.Disagree && i.FeedbackType == DataConstants.Tech && i.Cookie == hash));


                if (hasDisagree)
                {
                    return(Redirect("/Home/Technologies#item-" + id));
                }

                // not yet
                Agree disagree = new Agree
                {
                    TechFeedbackId  = id,
                    AgreeOrDisagree = DataConstants.Disagree,
                    FeedbackType    = DataConstants.Tech,
                    Cookie          = hash
                };
                Context.agrees.Add(disagree);

                var emergingTechnologiesFeedback = await Context.emergingTechnologiesFeedbacks.FirstOrDefaultAsync(m => m.ID == id);

                emergingTechnologiesFeedback.Disagree++;
                Context.Update(emergingTechnologiesFeedback);

                await Context.SaveChangesAsync();

                return(Redirect("/Home/Technologies#item-" + id));
            }
            else
            {
                return(new ChallengeResult());
            }
        }
Example #4
0
        protected virtual int GetValuesHashCode()
        {
            int code = 23;

            if (IsVariable)
            {
                code = code * 31 + VariableName.GetHashCode();
                code = code * 31 + Agree.GetHashCode();
            }
            return(code);
        }
Example #5
0
        public async Task <IActionResult> OnPostAgreeCommentAsync(int id)
        {
            string OwenrID = UserManager.GetUserId(User);

            if (OwenrID == null)
            {
                return(Challenge());
            }

            Agree ExistingAgree = await Context.Agrees
                                  .Where(a => a.CommentID == id)
                                  .Where(a => a.ProfileID == OwenrID)
                                  .FirstOrDefaultAsync();

            Comment comment = null;

            if (ExistingAgree == null)
            {
                Agree agree = new Agree
                {
                    CommentID  = id,
                    ProfileID  = OwenrID,
                    UpdateTime = DateTime.Now
                };
                Context.Agrees.Add(agree);

                //Check mission:BeAgreed //CheckMissionBeAgreed
                comment = await Context.Comments
                          .Where(c => c.CommentID == id)
                          .Include(c => c.Profile)
                          .Include(c => c.Agrees)
                          .FirstOrDefaultAsync();

                string  UserID    = comment.ProfileID;
                Profile Commenter = await Context.Profiles
                                    .Where(p => p.ProfileID == UserID)
                                    .Include(p => p.Missions)
                                    .FirstOrDefaultAsync();

                if (Commenter.Missions.BeAgreed != true)
                {
                    Commenter.Missions.BeAgreed     = true;
                    Commenter.VirtualCoins         += 5;
                    Context.Attach(Commenter).State = EntityState.Modified;
                }
                //Check other missions
                Missions missions = Commenter.Missions;
                if (missions.WatchArticle &&
                    missions.Vote &&
                    missions.LeaveComment &&
                    missions.ViewAnnouncement &&
                    missions.ShareCreation &&
                    missions.BeAgreed)
                {
                    Commenter.Missions.CompleteOtherMissions = true;
                    Context.Attach(Commenter).State          = EntityState.Modified;
                }

                await Context.SaveChangesAsync();
            }
            else
            {
                comment = await Context.Comments
                          .Where(c => c.CommentID == id)
                          .Include(c => c.Agrees)
                          .FirstOrDefaultAsync();

                Context.Agrees.Remove(ExistingAgree);
                await Context.SaveChangesAsync();
            }

            if (comment != null)
            {
                return(Content(comment.Agrees.Count().ToString()));
            }
            else
            {
                return(BadRequest());
            }
        }
Example #6
0
        public async Task <IActionResult> OnPostAgreeAsync(int id, int fromID, int pageIndex)
        {
            UserID = UserManager.GetUserId(User);

            if (UserID == null)
            {
                return(Challenge());
            }

            Agree ExistingAgree = await Context.Agrees
                                  .Where(a => a.CommentID == id)
                                  .Where(a => a.ProfileID == UserID)
                                  .FirstOrDefaultAsync();

            if (ExistingAgree == null)
            {
                Agree agree = new Agree
                {
                    CommentID  = id,
                    ProfileID  = UserID,
                    UpdateTime = DateTime.Now
                };
                Context.Agrees.Add(agree);

                //Check mission:BeAgreed //CheckMissionBeAgreed
                Comment comment = await Context.Comments
                                  .Where(c => c.CommentID == id)
                                  .Include(c => c.Profile)
                                  .FirstOrDefaultAsync();

                string  CommenterID = comment.ProfileID;
                Profile Commenter   = await Context.Profiles
                                      .Where(p => p.ProfileID == CommenterID)
                                      .Include(p => p.Missions)
                                      .FirstOrDefaultAsync();

                if (Commenter.Missions.BeAgreed != true)
                {
                    Commenter.Missions.BeAgreed     = true;
                    Commenter.VirtualCoins         += 5;
                    Context.Attach(Commenter).State = EntityState.Modified;
                }
                //Check other missions
                Missions missions = Commenter.Missions;
                if (missions.WatchArticle &&
                    missions.Vote &&
                    missions.LeaveComment &&
                    missions.ViewAnnouncement &&
                    missions.ShareCreation &&
                    missions.BeAgreed)
                {
                    Commenter.Missions.CompleteOtherMissions = true;
                    Context.Attach(Commenter).State          = EntityState.Modified;
                }

                await Context.SaveChangesAsync();
            }
            else
            {
                Context.Agrees.Remove(ExistingAgree);
                await Context.SaveChangesAsync();
            }

            return(RedirectToPage("./Details", "OnGet", new { id = fromID, pageIndex }, id.ToString()));
        }
Example #7
0
        public override byte[] ProcessBlock(
            byte[] @in,
            int inOff,
            int inLen)
        {
            if (ForEncryption)
            {
                if (KeyPairGenerator != null)
                {
                    EphemeralKeyPair ephKeyPair = KeyPairGenerator.Generate();

                    PrivParam = ephKeyPair.GetKeyPair().Private;
                    V         = ephKeyPair.GetEncodedPublicKey();
                }
            }
            else
            {
                if (KeyParser != null)
                {
                    MemoryStream bIn = new MemoryStream(@in, inOff, inLen)
                    {
                        Position = SecureHeadSize
                    };
                    try
                    {
                        PubParam = KeyParser.ReadKey(bIn);
                    }
                    catch (IOException e)
                    {
                        throw new InvalidCipherTextException("unable to recover ephemeral public key: " + e.Message, e);
                    }
                    catch (ArgumentException e)
                    {
                        throw new InvalidCipherTextException("unable to recover ephemeral public key: " + e.Message, e);
                    }

                    int encLength = (inLen - (int)(bIn.Length - bIn.Position));
                    V = Arrays.CopyOfRange(@in, inOff + SecureHeadSize, inOff + encLength);
                }
            }

            // Compute the common value and convert to byte array.
            Agree.Init(PrivParam);
            BigInteger z = Agree.CalculateAgreement(PubParam);

            byte[] bigZ = BigIntegers.AsUnsignedByteArray(Agree.GetFieldSize(), z);

            try
            {
                // Initialise the KDF.
                KdfParameters kdfParam = new KdfParameters(bigZ, null);
                Kdf.Init(kdfParam);

                if (ForEncryption)
                {
                    return(EncryptBlock(@in, inOff, inLen));
                }
                else
                {
                    byte[] temp = new byte[inLen - SecureHeadSize];
                    Array.Copy(@in, inOff + SecureHeadSize, temp, 0, temp.Length);
                    return(DecryptBlock(temp, inOff, temp.Length));
                }
            }
            finally
            {
                Arrays.Fill(bigZ, 0);
            }
        }