public IActionResult Post(int id)
        {
            try
            {
                DonationDetails obj       = new DonationDetails();
                var             objFromDb = _unitOfWork.PendingWire.GetFirstOrDefault(u => u.Id == id);
                if (objFromDb == null)
                {
                    return(Json(new { success = false, message = "Error while approving" }));
                }
                obj.UserId          = objFromDb.UserId;
                obj.DonationCauseId = objFromDb.DonationCauseId;
                obj.DonorName       = objFromDb.DonorName;
                obj.DonationTotal   = objFromDb.DonationTotal;
                obj.PaymentStatus   = objFromDb.PaymentStatus;
                obj.Email           = objFromDb.Email;
                obj.Comments        = objFromDb.Comments;
                obj.FollowUp        = objFromDb.FollowUp;
                obj.TransactionId   = objFromDb.Id.ToString();
                obj.DonationDate    = objFromDb.DonationDate;
                obj.DonationCause   = objFromDb.DonationCause;

                _unitOfWork.PendingWire.Remove(objFromDb);
                _unitOfWork.DonationDetails.Add(obj);
                _unitOfWork.Save();
            }
            catch (Exception ex)
            {
                return(Json(new { success = false, message = "Error while approving" }));
            }
            return(Json(new { success = true, message = "Approval Successful" }));
        }
        public ActionResult Return(DonationDetails model, int projectid = 0)
        {
            donation donation = db.donations.FirstOrDefault(x => x.InvestmentID == model.InvestmentID && x.user.UserName.ToLower() == User.Identity.Name.ToLower());

            if (donation != null)
            {
                donation.Description = model.Description;
                db.SaveChanges();
            }

            if (projectid > 0)
            {
                return(RedirectToAction("ThankYou", "Projects", new { id = projectid }));
            }

            return(RedirectToAction("Index", "Projects"));
        }
        public ActionResult AddDonation(UserDonation objDonation)
        {
            objDonation.RequestDate    = DateTime.Now.Date;
            objDonation.DonationStatus = Shared.Constants.DonationStatusPending;
            string          ret  = Shared.Constants.MSG_ERR_NOUSEREXIST.Text;
            MySqlConnection conn = Shared.BaseManager.PrimaryConnection();

            conn.Open();
            var transaction = conn.BeginTransaction();

            ret = UserDonationManager.SaveUserDonation(objDonation, conn, transaction);
            bool err = false;

            if (!ret.Equals(Shared.Constants.MSG_ERR_DBSAVE.Text))
            {
                for (int i = 0; i < objDonation.ItemName.Count; i++)
                {
                    DonationDetails objDD = new DonationDetails();
                    objDD.DONATIONID = Convert.ToInt32(ret);
                    objDD.ITEMNAME   = objDonation.ItemName[i];
                    objDD.QUANTITY   = objDonation.Quantity[i];

                    string res = DonationDetailManager.SaveDonationDetail(objDD, conn, transaction);
                    if (res.Equals(Shared.Constants.MSG_ERR_DBSAVE.Text))
                    {
                        err = true;
                        break;
                    }
                }
                if (!err)
                {
                    transaction.Commit();
                    conn.Close();
                    conn.Dispose();
                    return(RedirectToAction("GetAllPendingDonation", "Admin"));
                }


                //return RedirectToAction("GetAllPendingDonation", "Admin");
            }
            transaction.Rollback();
            conn.Close();
            conn.Dispose();
            return(RedirectToAction("AddDonation", "Admin"));
        }
示例#4
0
        public ActionResult FindAMatch()
        {
            var             UserId = User.Identity.GetUserId();
            ApplicationUser AppUser;

            using (var db = new ApplicationDbContext())
            {
                AppUser = db.Users.Find(UserId);
                BankAccount   donor    = (from ba in db.BankAccounts where ba.BankAccountOwnerId == AppUser.Id select ba).FirstOrDefault();
                string        AdminUid = (from r in db.Roles where r.Name == "Administrator" select r).FirstOrDefault().Users.FirstOrDefault().UserId;
                WaitingTicket Ticket   = (from t in db.WaitingList where t.Donations.Count < 2 && t.IsValid == true && t.TicketHolderId == AdminUid orderby t.EntryDate select t).FirstOrDefault();
                if (Ticket == null)
                {
                    Ticket = (from t in db.WaitingList where t.Donations.Count < 2 & t.IsValid == true orderby t.EntryDate select t).FirstOrDefault();
                }

                if (Ticket != null)
                {
                    Donation NewDonation = new Donation
                    {
                        Donor        = donor,
                        DonorId      = donor.Id,
                        IsOpen       = false,
                        Ticket       = Ticket,
                        TicketId     = Ticket.Id,
                        CreationDate = DateTime.Now
                    };
                    db.Donations.Add(NewDonation);
                    db.SaveChanges();
                    DonationDetails DonDetails = new DonationDetails {
                        DonationId             = NewDonation.Id,
                        RecipientFullName      = NewDonation.Ticket.TicketHolder.AccountTitle,
                        RecipientAccountNumber = NewDonation.Ticket.TicketHolder.AccountNumber,
                        RecipientBankName      = NewDonation.Ticket.TicketHolder.Bank,
                    };
                    return(PartialView("_FindAMatch", DonDetails));
                }
                else
                {
                    return(HttpNotFound());
                }
            }
        }
        public void OnGet(int id)
        {
            DonationCauseObj = _unitOfWork.DonationCause.GetFirstOrDefault(c => c.Id == id);
            DonationDetails  = new DonationDetails();
            if (User.Identity.IsAuthenticated)
            {
                var claimIdentity = (ClaimsIdentity)User.Identity;
                var claim         = claimIdentity.FindFirst(ClaimTypes.NameIdentifier);

                if (claim != null)
                {
                    //Retrieve details of the person logged in
                    ApplicationUser applicationUser = _unitOfWork.ApplicationUser.GetFirstOrDefault(c => c.Id == claim.Value);
                    DonationDetails.DonorName = applicationUser.FullName;
                    DonationDetails.Email     = applicationUser.Email;
                }
            }
            ViewData["Title"] = DonationCauseObj.Title;
            ViewData["Image"] = DonationCauseObj.Image;
            HttpContext.Session.SetString("donationCauseId", DonationCauseObj.Id.ToString());
        }
            public PartialViewResult Donations()
            {
                List <DonationDetails> Donations = new List <DonationDetails>();

                using (var db = new ApplicationDbContext())
                {
                    var DonationList = (from d in db.Donations select d).ToList();
                    foreach (Donation dn in DonationList)
                    {
                        var dets = new DonationDetails
                        {
                            DonationId        = dn.Id,
                            DonorFullName     = dn.Donor.AccountTitle,
                            RecipientFullName = dn.Ticket.TicketHolder.AccountTitle,
                            DonationSetupDate = dn.CreationDate,
                            Status            = dn.IsOpen
                        };
                        Donations.Add(dets);
                    }
                }
                return(PartialView("_Donations", Donations));
            }
        public ActionResult UploadPaymentInfo(string Id)
        {
            Donation donation = DonationServices.GetDonationById(Id);

            if (donation != null)
            {
                DonationDetails details = new DonationDetails
                {
                    DonationId             = donation.Id,
                    DonorBankName          = donation.Donor.Bank,
                    DonorAccountNumber     = donation.Donor.AccountNumber,
                    DonorFullName          = donation.Donor.AccountTitle,
                    RecipientAccountNumber = donation.Ticket.TicketHolder.AccountNumber,
                    RecipientBankName      = donation.Ticket.TicketHolder.Bank,
                    RecipientFullName      = donation.Ticket.TicketHolder.AccountTitle
                };
                return(View(details));
            }

            else
            {
                return(HttpNotFound("We could not find the information you are looking for."));
            }
        }
        public ActionResult Return(int projectid = 0)
        {
            LogStuff("PAYPAL RETURN", DateTime.Now, Request.QueryString.ToString() + "\r\n" + Request.Form.ToString());

            /*
             * mc_gross=1.00
             * &protection_eligibility=Eligible
             * &address_status=confirmed
             * &payer_id=JK9XPSEQK26MQ
             * &tax=0.00
             * &address_street=1+Main+St
             * &payment_date=07%3A06%3A59+Jun+05%2C+2013+PDT
             * &payment_status=Completed
             * &charset=windows-1252
             * &address_zip=95131
             * &first_name=tester
             * &mc_fee=0.38
             * &address_country_code=US
             * &address_name=tester+localactors
             * &notify_version=3.7
             * &custom=admin
             * &payer_status=verified
             * &business=vespassassina-facilitator%40hotmail.com
             * &address_country=United+States
             * &address_city=San+Jose
             * &quantity=0
             * &payer_email=test%40localactors.org
             * &verify_sign=An5ns1Kso7MWUdW4ErQKJJJ4qi4-A5uKSmudPHg6Bssh--AZqtYMP7Wh&txn_id=1SH19721FS9241319
             * &payment_type=instant
             * &last_name=localactors
             * &address_state=CA
             * &receiver_email=vespassassina-facilitator%40hotmail.com
             * &payment_fee=
             * &receiver_id=8R62TKM9TXLMY
             * &txn_type=web_accept
             * &item_name=Project
             * &mc_currency=EUR
             * &item_number=1
             * &residence_country=US
             * &test_ipn=1
             * &transaction_subject=admin
             * &payment_gross=
             * &merchant_return_link=Return+to+Diego+Trinciarelli's+Test+Store
             * &auth=AjhU-C2bLdsvWYwJHJhvzSRc08zgx9u3L231oxJdcHrFevcwbGsMj4MJVn9gc1WK8SdRTbimDZHXAkuD-gpm.VQ#.Ua9GDJxZL_c
             */

            string payer_id     = Request["payer_id"];
            string payment_date = Request["payment_date"];

            transaction     t        = db.transactions.Include("Donation").FirstOrDefault(x => x.TransactionDate == payment_date && x.SenderID == payer_id);
            DonationDetails donation = new DonationDetails();

            if (t != null && t.donation.user.UserName.ToLower() == User.Identity.Name.ToLower())
            {
                donation.InvestmentID = t.donation.InvestmentID;
                donation.Amount       = t.donation.Amount;
                donation.Currency     = t.donation.Currency;
                donation.Description  = t.donation.Description;
                ViewBag.projectid     = projectid;
                return(View(donation));
            }

            return(RedirectToAction("ThankYou", "Projects", new{ id = projectid }));
        }
示例#9
0
        internal ActionResult Homepage()
        {
            ApplicationUser AppUser;
            // Get data
            var UserId = User.Identity.GetUserId();

            AppUser = DbAccessHandler.DbContext.Users.Find(UserId);
            var            UserBankAccount   = BankAccountServices.GetUserBankAccount(AppUser);
            var            IncomingDonations = DonationServices.GetIncomingAccountDonations(UserBankAccount);
            List <Payment> IncomingPayments  = new List <Payment>();

            foreach (Donation d in IncomingDonations)
            {
                Payment p = PaymentServices.GetPaymentForDonation(d);
                if (PaymentServices.IsNotNull(p))
                {
                    IncomingPayments.Add(p);
                }
            }

            var            OutgoingDonations = DonationServices.GetOutgoingAccountDonations(UserBankAccount);
            List <Payment> OutgoingPayments  = new List <Payment>();

            foreach (Donation d in OutgoingDonations)
            {
                Payment p1 = PaymentServices.GetPaymentForDonation(d);
                if (PaymentServices.IsNotNull(p1))
                {
                    OutgoingPayments.Add(p1);
                }
            }


            List <Donation> _pendingIncomingDonations = new List <Donation>(2);
            List <Payment>  _pendingIncomingpayments  = new List <Payment>(2);

            Donation PendingOutgoingDonation = null;
            Payment  PendingOutgoingPayment  = null;

            if (UserBankAccount.IsReceiver == false)
            {
                if (OutgoingDonations.Where(m => m.IsOpen == false).Count() > 0)
                {
                    PendingOutgoingDonation = OutgoingDonations.Where(m => m.IsOpen == false).First();
                }

                if (OutgoingPayments.Where(m => m.Confirmed == false).Count() > 0)
                {
                    PendingOutgoingPayment = OutgoingPayments.Where(m => m.Confirmed == false).First();
                }
            }
            else
            {
                var IDnts = IncomingDonations.Where(m => m.IsOpen == false).ToList();
                if (IDnts != null)
                {
                    _pendingIncomingDonations = IDnts;
                }
                var IPymts = IncomingPayments.Where(m => m.Confirmed == false).ToList();
                if (IPymts != null)
                {
                    _pendingIncomingpayments = IPymts;
                }
            }

            //Get Users personal Information
            var FirstName   = AppUser.FirstName;
            var LastName    = AppUser.LastName;
            var PhoneNumber = AppUser.PhoneNumber;

            if (AppUser.PhoneNumberConfirmed == false)
            {
                PhoneNumber = PhoneNumber + " (Unconfirmed)";
            }
            var Emailaddress = AppUser.Email;

            //Add objects to the data dictionary

            //Personal Information
            UserDetails Ud = new UserDetails
            {
                FirstName   = FirstName,
                LastName    = LastName,
                PhoneNumber = PhoneNumber,
                UserName    = Emailaddress
            };

            ViewBag.UserDetails = Ud;

            //Account Information
            BankAccountDetails Bd = new BankAccountDetails
            {
                AccountTitle  = UserBankAccount.AccountTitle,
                AccountNumber = UserBankAccount.AccountNumber,
                BankName      = UserBankAccount.Bank,
                IsReceiver    = UserBankAccount.IsReceiver
            };

            ViewBag.BankAccountDetails = Bd;

            //Outgoing Payments Information
            ViewBag.OutgoingPayments = OutgoingPayments.Where(m => m.Confirmed == true).Select(m => m.CreationDate).ToList();

            //Incoming Payments Information
            ViewBag.IncomingPayments = IncomingPayments.Where(m => m.Confirmed == true).Select(m => m.CreationDate).ToList();

            //Pending Donors Information
            var PendingIncomingDonations = new List <Dictionary <string, object> >();

            if (_pendingIncomingDonations.Count > 0)
            {
                foreach (Donation d in _pendingIncomingDonations)
                {
                    var DonationId    = d.Id;
                    var Name          = d.Donor.AccountTitle;
                    var AccountNumber = d.Donor.AccountNumber;
                    var BankName      = d.Donor.Bank;
                    var Payment       = _pendingIncomingpayments.Where(p => p.DonationPack.Id == d.Id).FirstOrDefault();

                    Dictionary <string, object> set = new Dictionary <string, object>();
                    set.Add("DonationId", DonationId);
                    set.Add("Name", Name);
                    set.Add("AccountNumber", AccountNumber);
                    set.Add("BankName", BankName);
                    if (Payment != null)
                    {
                        set.Add("PaymentId", Payment.Id);
                        set.Add("Confirmed", Payment.Confirmed);
                    }
                    else
                    {
                        set.Add("PaymentId", null);
                        set.Add("Confirmed", null);
                    }
                    PendingIncomingDonations.Add(set);
                }
            }
            ViewBag.PendingIncomingDonations = PendingIncomingDonations;

            //Pending Outgoing Donation View
            DonationDetails DonationDetails = null;

            if (PendingOutgoingDonation != null)
            {
                DonationDetails                        = new DonationDetails();
                DonationDetails.DonationId             = PendingOutgoingDonation.Id;
                DonationDetails.RecipientFullName      = PendingOutgoingDonation.Ticket.TicketHolder.AccountTitle;
                DonationDetails.RecipientAccountNumber = PendingOutgoingDonation.Ticket.TicketHolder.AccountNumber;
                DonationDetails.RecipientBankName      = PendingOutgoingDonation.Ticket.TicketHolder.Bank;
                DonationDetails.DonationSetupDate      = PendingOutgoingDonation.CreationDate;
            }
            ViewBag.PendingOutgoingDonation = DonationDetails;
            PaymentDetails PayDetails = null;

            if (PendingOutgoingPayment != null)
            {
                PayDetails           = new PaymentDetails();
                PayDetails.PaymentId = PendingOutgoingPayment.Id;
                PayDetails.Status    = PendingOutgoingPayment.Confirmed;
                PayDetails.Date      = PendingOutgoingPayment.CreationDate.ToShortDateString();
            }
            ViewBag.PendingPayDetails = PayDetails;

            //Pending Outgoing Payment Information
            ViewBag.PendingOutgoingPayment = PendingOutgoingPayment;

            return(View("HomePage"));
        }
示例#10
0
        public async System.Threading.Tasks.Task <ActionResult> MakeADonation(DonationViewModels model)
        {
            //Setting donation details from formData
            //TODO:
            //Save to database
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            List <HttpPostedFile> files = new List <HttpPostedFile>();

            foreach (var f in Request.Files)
            {
                files.Add(f as HttpPostedFile);
            }

            try
            {
                var HeaderImagesJson    = Request.Params["headerImages"];
                var donationDetailsJson = Request.Params["details"];

                //Deserialization
                var           donationImages  = JsonConvert.DeserializeObject <List <FileViewModel> >(HeaderImagesJson);
                var           donationDetails = JsonConvert.DeserializeObject <List <DonationDetailsViewModels> >(donationDetailsJson);
                List <string> filesAdded      = new List <string>();
                model.DonationDetails = donationDetails;
                var imageService = new ImageService(log);
                ViewBag.StatusMessage = "";


                //Amount validation if money is on
                if (model.IsMoney && model.Amount <= 0)
                {
                    ViewBag.StatusMessage = Resources.InvalidAmount;
                    return(View(model));
                }

                filesAdded = new List <string>();
                foreach (var line in model.DonationDetails)
                {
                    foreach (var file in line.MultiFileData)
                    {
                        //check if the image already exist.
                        var fileExist = filesAdded.Any(x => x == file.Name);
                        if (!fileExist)
                        {
                            //upload image to azure
                            var fileToUpload = file.GetFile(Request.Files);
                            if (fileToUpload != null)
                            {
                                var imageUrl = await imageService.CreateUploadedImageAsync(fileToUpload, Guid.NewGuid().ToString(), true, 500, 500);

                                line.Images.Add(new ImageViewModel()
                                {
                                    Item = line, ImageUrl = imageUrl
                                });
                                filesAdded.Add(file.Name);
                            }
                        }
                    }
                }

                //Class Injection
                CurrentUser = userRepository.GetByUserName(User.Identity.Name);
                var donation = new Donation {
                    Amount         = model.Amount,
                    CreatedBy      = CurrentUser,
                    CreatedOn      = DateTime.Now,
                    DonatedOn      = DateTime.Now,
                    Description    = model.Description,
                    DonationStatus = (Core.Entities.DonationStatus)model.DonationStatus,
                    ExpireOn       = model.ExpireOn,
                    Title          = model.Title,
                    ModifiedOn     = null
                };


                //Donation Images
                filesAdded = new List <string>();
                foreach (var fileWrapper in model.HeaderMultiFileData)
                {
                    //check if the image already exist.
                    var fileExist = filesAdded.Any(x => x == fileWrapper.FileName);
                    if (!fileExist)
                    {
                        var file     = fileWrapper as HttpPostedFileBase;
                        var imageUrl = await imageService.CreateUploadedImageAsync(file, Guid.NewGuid().ToString(), true, 500, 500);

                        donation.AddImage(new DonationImage()
                        {
                            Donation = donation, ImageUrl = imageUrl, CreatedBy = CurrentUser, CreatedOn = DateTime.Now, ModifiedOn = null
                        });
                        filesAdded.Add(fileWrapper.FileName);
                    }
                }

                if (model.DonationDetails != null && model.DonationDetails.Count() > 0)
                {
                    donation.DonationDetails = new List <DonationDetails>();
                }
                else
                {
                    donation.DonationDetails = null;
                }

                if (!model.IsMoney)
                {
                    foreach (var item in model.DonationDetails)
                    {
                        var itemLine = new DonationDetails
                        {
                            CreatedBy      = CurrentUser,
                            Donation       = donation,
                            CreatedOn      = DateTime.Now,
                            ItemName       = item.ItemName,
                            ItemType       = (Core.Entities.DonationType)item.ItemType,
                            Line           = item.Index,
                            DonationStatus = (Core.Entities.DonationStatus)item.DonationStatus,
                            ModifiedOn     = null
                        };

                        foreach (var image in item.Images)
                        {
                            itemLine.Images.Add(
                                new DonationDetailsImage
                            {
                                CreatedBy  = CurrentUser,
                                Item       = itemLine,
                                ImageUrl   = image.ImageUrl,
                                CreatedOn  = DateTime.Now,
                                ModifiedOn = null
                            });
                        }

                        donation.DonationDetails.Add(itemLine);
                    }
                }

                //save to database
                donationRepository.Create(donation);
                //Success
                return(Json(new { result = "Redirect", url = Url.Action("Index", "Donations", new { Message = DonationMessageId.CrateDonationSuccess }) }));
            }
            catch (System.Exception ex)
            {
                ViewBag.StatusMessage = ex.Message;
            }

            return(Json(new { result = "Error", Message = ViewBag.StatusMessage }));;
        }
示例#11
0
        public HttpResponseMessage Donate(Object Donation)
        {
            var    test = JsonConvert.DeserializeObject <Dictionary <string, dynamic> >(Convert.ToString(Donation));
            object DonationDetails;

            test.TryGetValue("DonationDetails", out DonationDetails);

            //object PickUpLat;
            //test.TryGetValue("PickUpLat", out PickUpLat);
            //double _PickUpLat = Convert.ToDouble(PickUpLat);
            //object PickUpLng;
            //test.TryGetValue("PickUpLng", out PickUpLng);
            //double _PickUpLng = Convert.ToDouble(PickUpLng);
            object UserId;

            test.TryGetValue("UserId", out UserId);
            int    _UserId = Convert.ToInt32(UserId);
            object TypeId;

            test.TryGetValue("DonationTypeId", out TypeId);
            int _TypeId = Convert.ToInt32(TypeId);

            var connection = new MySqlConnection(ConfigurationManager.AppSettings["MySqlDBConn"].ToString());
            var compiler   = new MySqlCompiler();
            var db         = new QueryFactory(connection, compiler);

            db.Connection.Open();
            using (var scope = db.Connection.BeginTransaction())
            {
                try
                {
                    Dictionary <string, object> DonationObj = new Dictionary <string, object>()
                    {
                        { "RequestDate", DateTime.Now.Date },
                        { "DonationTypeId", _TypeId },
                        { "UserId", _UserId },

                        { "DonationStatus", DonationStatusPending }
                        //donationdetails
                    };


                    var res = db.Query("userDonation").InsertGetId <int>(new
                    {
                        RequestDate    = DateTime.Now.Date,
                        DonationTypeId = _TypeId,
                        UserId         = _UserId,
                        DonationStatus = DonationStatusPending
                    });
                    List <Dictionary <string, object> > _DonationDetails = JsonConvert.DeserializeObject <List <Dictionary <string, object> > >(DonationDetails.ToString());

                    foreach (var item in _DonationDetails)
                    {
                        item.Add("DonationId", res);
                        var resp = db.Query("Donationdetails").Insert(item);
                    }


                    scope.Commit();
                    return(Request.CreateResponse(HttpStatusCode.Created, new Dictionary <string, int>()
                    {
                        { "LastInsertedID", res }
                    }));
                }
                catch (Exception ex)
                {
                    scope.Rollback();
                    return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
                }
            }
        }