Пример #1
0
        public void UpdateImageFromBitsTest()
        {
            int id;

            using (var db = CMSImageDataContext.Create(Util.Host))
            {
                var image = CreateJpegImage();
                db.Images.InsertOnSubmit(image);
                db.SubmitChanges();
                id    = image.Id;
                image = null;
            }

            Image newImage;

            var bytes = GetImageBytes("Untitled");

            using (var db = CMSImageDataContext.Create(Util.Host))
            {
                newImage = db.UpdateImageFromBits(id, bytes);
            }
            var expected = GetImageBytes("UpdateImageFromBitsTest");

            newImage.Bits.ShouldBe(expected);
            newImage.Mimetype.ShouldBe("image/jpeg");
        }
Пример #2
0
        public static void CreateMemberDocument(CMSDataContext db, CMSImageDataContext idb, string docname, int orgId, Person person, HttpPostedFileBase file)
        {
            string docName = $"{docname}_{person.LastName}_{person.FirstName}_{person.PeopleId}";

            var document = db.OrgMemberDocuments.SingleOrDefault(o => o.DocumentName == docName & o.PeopleId == person.PeopleId & o.OrganizationId == orgId);

            if (document != null)
            {
                db.OrgMemberDocuments.DeleteOnSubmit(document);
                Image.Delete(idb, document.ImageId);
                db.SubmitChanges();
            }

            int imageId = DocumentsData.StoreImageFromDocument(idb, file);

            db.OrgMemberDocuments.InsertOnSubmit(new OrgMemberDocument()
            {
                DocumentName   = docName,
                ImageId        = imageId,
                PeopleId       = person.PeopleId,
                OrganizationId = orgId,
                CreatedDate    = DateTime.Now
            });
            db.SubmitChanges();
        }
Пример #3
0
        public void JoinUnJoinOrg(int PeopleId, int OrgId, bool Member)
        {
            var db = DbUtil.Db;
            var om = db.OrganizationMembers.SingleOrDefault(m => m.PeopleId == PeopleId && m.OrganizationId == OrgId);

            if (om == null && Member)
            {
                om = OrganizationMember.InsertOrgMembers(db,
                                                         OrgId, PeopleId, MemberTypeCode.Member, DateTime.Now, null, false);
            }
            else if (om != null && !Member)
            {
                om.Drop(db, CMSImageDataContext.Create(db.Host));
            }

            db.SubmitChanges();

            var org = db.LoadOrganizationById(OrgId);

            if (org != null && org.NotifyIds.HasValue())
            {
                var p    = db.LoadPersonById(PeopleId);
                var what = Member ? "joined" : "dropped";
                //                db.Email(DbUtil.Db.Util.AdminMail,
                //                    db.PeopleFromPidString(org.NotifyIds),
                //                    $"cms check-in, {what} class on " + db.CmsHost,
                //                    $"<a href='{Util.ServerLink("/Person2/" + PeopleId)}/Person2/{PeopleId}'>{p.Name}</a> {what} {org.OrganizationName}");
                DbUtil.LogActivity($"cms check-in, {what} class ({p.PeopleId})");
            }
        }
Пример #4
0
        public MobileTask populate(Task task, int currentPeopleID, CMSImageDataContext cmsidb)
        {
            id = task.Id;

            status   = task.TaskStatus.Description;
            statusID = task.StatusId ?? 0;

            created = task.CreatedOn;
            due     = task.Due;

            completeWithContact = task.ForceCompleteWContact ?? false;

            owner   = task.Owner.Name;
            ownerID = task.OwnerId;

            delegated   = task.CoOwner != null ? task.CoOwner.Name : "";
            delegatedID = task.CoOwnerId ?? 0;

            about   = task.AboutName ?? "";
            aboutID = task.WhoId ?? 0;

            desc          = task.Description;
            notes         = task.Notes;
            declineReason = task.DeclineReason;

            if (task.AboutWho?.Picture != null)
            {
                var image = cmsidb.Images.SingleOrDefault(i => i.Id == task.AboutWho.Picture.SmallId);

                if (image != null)
                {
                    picture  = Convert.ToBase64String(image.Bits);
                    pictureX = task.AboutWho.Picture.X ?? 0;
                    pictureY = task.AboutWho.Picture.Y ?? 0;
                }
            }

            if (statusID == CmsData.Codes.TaskStatusCode.Complete)
            {
                type      = MobileTask.TYPE_COMPLETE;
                completed = task.CompletedOn;
            }
            else
            {
                if (delegatedID > 0 && delegatedID != currentPeopleID)
                {
                    type = MobileTask.TYPE_DELEGATED;
                }
                else if (statusID == CmsData.Codes.TaskStatusCode.Active)
                {
                    type = MobileTask.TYPE_ACTIVE;
                }
                else
                {
                    type = MobileTask.TYPE_PENDING;
                }
            }

            return(this);
        }
Пример #5
0
        public MobileAttendee populate(CMSDataContext cmsdb, CMSImageDataContext cmsidb, RollsheetModel.AttendInfo p)
        {
            id         = p.PeopleId;
            name       = p.Name;
            memberType = p.CurrMemberType;
            orgMember  = p.CurrMember;
            member     = p.Member;
            attended   = p.Attended;

            Person person = cmsdb.People.SingleOrDefault(e => e.PeopleId == id);

            if (person.Picture != null)
            {
                var image = cmsidb.Images.SingleOrDefault(i => i.Id == person.Picture.SmallId);

                if (image != null)
                {
                    picture  = Convert.ToBase64String(image.Bits);
                    pictureX = person.Picture.X ?? 0;
                    pictureY = person.Picture.Y ?? 0;
                }
            }

            return(this);
        }
Пример #6
0
 private bool HasImage(CMSImageDataContext idb, int? imageid)
 {
     var q = from i in idb.Images
             where i.Id == imageid
             select i.Length;
     return q.Any();
 }
Пример #7
0
        public static bool TryImpersonate(CMSDataContext cmsdb, CMSImageDataContext cmsidb)
        {
            if (HttpContextFactory.Current.User.Identity.IsAuthenticated)
            {
                return(false);
            }

            if (!Util.IsDebug())
            {
                return(false);
            }
#if Impersonate
#else
            if (!WebConfigurationManager.AppSettings["TryImpersonate"].ToBool())
            {
                return(false);
            }
#endif
            var username = WebConfigurationManager.AppSettings["DebugUser"];
            if (!username.HasValue())
            {
                return(false);
            }

            AccountModel.SetUserInfo(cmsdb, cmsidb, username);
            if (Util.UserId == 0)
            {
                return(false);
            }

            FormsAuthentication.SetAuthCookie(username, false);
            return(true);
        }
Пример #8
0
        public static void CreateTemporaryDocument(CMSDataContext db, CMSImageDataContext idb, string docname, int orgId, string emailAddress, string lastName, string firstName, HttpPostedFileBase file)
        {
            var document = db.OrgTemporaryDocuments.SingleOrDefault(o => o.DocumentName == docname & o.LastName == lastName & o.FirstName == firstName & o.EmailAddress == emailAddress);

            if (document != null)
            {
                db.OrgTemporaryDocuments.DeleteOnSubmit(document);
                Image.Delete(idb, document.ImageId);
                db.SubmitChanges();
            }

            int imageId = DocumentsData.StoreImageFromDocument(idb, file);

            db.OrgTemporaryDocuments.InsertOnSubmit(new OrgTemporaryDocuments()
            {
                DocumentName   = docname,
                ImageId        = imageId,
                LastName       = lastName,
                FirstName      = firstName,
                EmailAddress   = emailAddress,
                OrganizationId = orgId,
                CreatedDate    = DateTime.Now
            });
            db.SubmitChanges();
        }
Пример #9
0
        public static Family forID(CMSDataContext dataContext, CMSImageDataContext imageContext, int familyID, int campus, DateTime date, bool returnPictureUrls = false)
        {
            Family    family = new Family();
            DataTable table  = new DataTable();

            string qFamily = @"SELECT family.FamilyId AS id, MAX( head.Name ) AS name
										FROM dbo.Families family
											LEFT JOIN dbo.People AS head ON family.HeadOfHouseholdId = head.PeopleId AND head.DeceasedDate IS NULL
										WHERE family.familyId = @familyID
										GROUP BY family.FamilyId"                                        ;

            using (SqlCommand cmd = new SqlCommand(qFamily, dataContext.ReadonlyConnection() as SqlConnection)) {
                SqlParameter parameter = new SqlParameter("familyID", familyID);

                cmd.Parameters.Add(parameter);

                SqlDataAdapter adapter = new SqlDataAdapter(cmd);
                adapter.Fill(table);
            }

            if (table.Rows.Count == 1)
            {
                family.populate(table.Rows[0]);
                family.loadMembers(dataContext, imageContext, campus, date, returnPictureUrls);
            }

            return(family);
        }
Пример #10
0
        private static bool Authenticate(string role = "Checkin")
        {
            var db  = CMSDataContext.Create(HttpContextFactory.Current);
            var idb = CMSImageDataContext.Create(HttpContextFactory.Current);

            return(AccountModel.AuthenticateMobile(db, idb, "Checkin").IsValid);
        }
        private static bool Auth()
        {
            CMSDataContext      db  = CMSDataContext.Create(HttpContextFactory.Current);
            CMSImageDataContext idb = CMSImageDataContext.Create(HttpContextFactory.Current);

            return(AccountModel.AuthenticateMobile(db, idb, "Checkin").IsValid);
        }
Пример #12
0
        public CheckInFamilyMember(CMSDataContext cmsdb, CMSImageDataContext cmsidb, CheckinFamilyMember member, int day, int tzOffset)
        {
            id       = member.Id ?? 0;
            age      = member.Age ?? 0;
            position = member.Position ?? 100;
            genderID = member.Genderid ?? 0;

            name    = member.Name;
            altName = member.AltName;

            Person p = cmsdb.LoadPersonById(id);

            if (p.Picture != null)
            {
                Image image = cmsidb.Images.SingleOrDefault(i => i.Id == p.Picture.SmallId);

                if (image != null)
                {
                    picture  = Convert.ToBase64String(image.Bits);
                    pictureX = p.Picture.X ?? 0;
                    pictureY = p.Picture.Y ?? 0;
                }
            }

            addOrg(member, day, tzOffset);
        }
Пример #13
0
        public static void DoMoveWork(MoveOrgMembersModel model)
        {
            var statusContext = CMSDataContext.Create(model.Host);
            var workerContext = CMSDataContext.Create(model.Host);

            workerContext.CommandTimeout = 2200;
            var cul = workerContext.Setting("Culture", "en-US");

            Thread.CurrentThread.CurrentUICulture = new CultureInfo(cul);
            Thread.CurrentThread.CurrentCulture   = CultureInfo.CreateSpecificCulture(cul);
            LongRunningOperation lop = FetchLongRunningOperation(statusContext, Op, model.QueryId);
            var orgsPeople           = new Dictionary <int, List <int> >();

            foreach (var i in model.List) // {personId}.{organizationId}
            {
                var a = i.Split('.');
                if (a.Length != 2)
                {
                    continue;
                }

                var orgId = a[1].ToInt();

                if (orgId == model.TargetId)
                {
                    continue;
                }

                if (!orgsPeople.ContainsKey(orgId))
                {
                    orgsPeople[orgId] = new List <int>();
                }
                orgsPeople[orgId].Add(a[0].ToInt());
            }

            foreach (var oid in orgsPeople.Keys)
            {
                var peopleIds = orgsPeople[oid];
                foreach (var pid in peopleIds)
                {
                    OrganizationMember.MoveToOrg(workerContext, CMSImageDataContext.Create(workerContext.Host), pid, oid, model.TargetId, model.MoveRegistrationData, model.ChangeMemberType == true ? model.MoveToMemberTypeId : -1);
                    if (lop != null)
                    {
                        lop.Processed++;
                        lop.CustomMessage = $"Working from {pid},{oid} to {model.TargetId}";
                        statusContext.SubmitChanges();
                    }
                }
                BackgroundRepairTransactions(model.repairExe, oid, workerContext);
            }
            BackgroundRepairTransactions(model.repairExe, model.TargetId, workerContext);
            // finished
            if (lop != null)
            {
                lop.Completed = DateTime.Now;
                statusContext.SubmitChanges();
            }
            workerContext.UpdateMainFellowship(model.TargetId);
        }
Пример #14
0
        public void DropSingleMember(int orgId, int peopleId)
        {
            var org = CurrentDatabase.LoadOrganizationById(orgId);
            var om  = org.OrganizationMembers.Single(mm => mm.PeopleId == peopleId);

            om.Drop(CurrentDatabase, CMSImageDataContext.Create(CurrentDatabase.Host));
            CurrentDatabase.SubmitChanges();
        }
Пример #15
0
 public FakeRequestManager()
 {
     CurrentHttpContext   = ContextTestUtils.CreateMockHttpContext().Object;
     CurrentDatabase      = CMSDataContext.Create(DatabaseFixture.Host);
     CurrentImageDatabase = CMSImageDataContext.Create(DatabaseFixture.Host);
     CurrentUser          = CurrentHttpContext.User;
     RequestId            = Guid.NewGuid();
 }
Пример #16
0
        public RequestManager()
        {
            CurrentHttpContext = HttpContext.Current;
            RequestId          = Guid.NewGuid();

            CurrentDatabase      = CmsData.DbUtil.Db;
            CurrentImageDatabase = ImageData.DbUtil.Db;
        }
Пример #17
0
 public RequestManager()
 {
     CurrentHttpContext   = HttpContextFactory.Current;
     RequestId            = Guid.NewGuid();
     CurrentUser          = CurrentHttpContext.User;
     CurrentDatabase      = CMSDataContext.Create(CurrentHttpContext);
     CurrentImageDatabase = CMSImageDataContext.Create(CurrentHttpContext);
 }
Пример #18
0
        public static List <FamilyMember> forFamilyID(CMSDataContext cmsdb, CMSImageDataContext cmsidb, int familyID, int campus, DateTime date, bool returnPictureUrls)
        {
            List <FamilyMember> members = new List <FamilyMember>();
            DataTable           table   = new DataTable();

            string qMembers = @"SELECT *
										FROM (SELECT
													person.PeopleId AS id,
													person.Name AS name,
													ISNULL( person.Age, 0 ) AS age,
													person.BDate AS birthday,
													gender.Id AS genderID,
													EmailAddress AS email,
													CellPhone AS mobile
												FROM dbo.People AS person
													LEFT JOIN lookup.Gender AS gender ON person.GenderId = gender.Id
												WHERE person.FamilyId = @familyID
												UNION
												SELECT
													person.PeopleId AS id,
													person.Name AS name,
													ISNULL( person.Age, 0 ) AS age,
													person.BDate AS birthday,
													gender.Id AS genderID,
													EmailAddress AS email,
													CellPhone AS mobile
												FROM dbo.PeopleExtra AS extra
													INNER JOIN People AS person on person.PeopleId = extra.PeopleId
													LEFT JOIN lookup.Gender AS gender ON person.GenderId = gender.Id
												WHERE extra.Field = 'Parent'
														AND extra.IntValue IN (SELECT person.PeopleId
																					  FROM dbo.People AS person
																					  WHERE person.FamilyId = @familyID)
											  ) AS familyMembers
										ORDER BY familyMembers.Age DESC, familyMembers.genderID"                                        ;

            using (SqlCommand cmd = new SqlCommand(qMembers, cmsdb.ReadonlyConnection() as SqlConnection)) {
                SqlParameter parameter = new SqlParameter("familyID", familyID);

                cmd.Parameters.Add(parameter);

                SqlDataAdapter adapter = new SqlDataAdapter(cmd);
                adapter.Fill(table);
            }

            foreach (DataRow row in table.Rows)
            {
                FamilyMember member = new FamilyMember();
                member.populate(row);
                member.loadPicture(cmsdb, cmsidb, returnPictureUrls);
                member.loadGroups(cmsdb, campus, date);

                members.Add(member);
            }

            return(members);
        }
Пример #19
0
 public FakeRequestManager(bool isAuthenticated)
 {
     CurrentHttpContext   = ContextTestUtils.CreateMockHttpContext(isAuthenticated).Object;
     CurrentDatabase      = CMSDataContext.Create(DatabaseFixture.Host);
     CurrentImageDatabase = CMSImageDataContext.Create(DatabaseFixture.Host);
     CurrentUser          = CurrentHttpContext.User;
     RequestId            = Guid.NewGuid();
     SessionProvider      = new CmsSessionProvider(CurrentDatabase);
 }
Пример #20
0
 public static void FinishLogin(string userName, CMSDataContext db, CMSImageDataContext idb, bool logEntry = true)
 {
     SetUserInfo(db, idb, userName, logEntry);
     FormsAuthentication.SetAuthCookie(userName, false);
     if (logEntry)
     {
         DbUtil.LogActivity($"User {userName} logged in");
     }
 }
Пример #21
0
 public void DropOrgMember(object pid, object orgId)
 {
     db.LogActivity($"PythonModel.DropOrgMember({pid},{orgId})");
     using (var db2 = NewDataContext())
     {
         var om = db2.OrganizationMembers.Single(m => m.PeopleId == pid.ToInt() && m.OrganizationId == orgId.ToInt());
         om.Drop(db2, CMSImageDataContext.Create(db2.Host));
         db2.SubmitChanges();
     }
 }
Пример #22
0
 public RequestManager()
 {
     CurrentHttpContext   = HttpContextFactory.Current;
     RequestId            = Guid.NewGuid();
     CurrentUser          = CurrentHttpContext.User;
     CurrentDatabase      = CMSDataContext.Create(CurrentHttpContext);
     CurrentImageDatabase = CMSImageDataContext.Create(CurrentHttpContext);
     SessionProvider      = new CmsSessionProvider();
     CurrentHttpContext.Items["SessionProvider"] = SessionProvider;
 }
Пример #23
0
        private void DeleteDocuments(CMSDataContext db, CMSImageDataContext idb)
        {
            var docs = db.OrgMemberDocuments.Where(p => p.PeopleId == this.PeopleId & p.OrganizationId == this.OrganizationId);

            foreach (var item in docs)
            {
                ImageData.Image.Delete(idb, item.ImageId);
            }
            db.OrgMemberDocuments.DeleteAllOnSubmit(docs);
            db.SubmitChanges();
        }
Пример #24
0
        public void ImageFromIdTest()
        {
            var image = CreateJpegImage();

            using (var db = CMSImageDataContext.Create(Util.Host))
            {
                db.Images.InsertOnSubmit(image);
                db.SubmitChanges();
                Image.ImageFromId(db, image.Id).ShouldNotBeNull();
            }
        }
Пример #25
0
        public static void DeleteDocument(CMSDataContext db, CMSImageDataContext idb, int id, int docid)
        {
            var m = db.MemberDocForms.SingleOrDefault(mm => mm.Id == docid && mm.PeopleId == id);

            idb.DeleteOnSubmit(m.SmallId);
            idb.DeleteOnSubmit(m.MediumId);
            idb.DeleteOnSubmit(m.LargeId);
            db.MemberDocForms.DeleteOnSubmit(m);
            db.SubmitChanges();
            idb.SubmitChanges();
        }
Пример #26
0
        public void InsertTest()
        {
            using (var db = CMSImageDataContext.Create(Util.Host))
            {
                var other = NewOther();
                db.Others.InsertOnSubmit(other);
                db.SubmitChanges();

                db.Others.Where(o => o.Id == other.Id).Any().ShouldBeTrue();
            }
        }
Пример #27
0
        public void DropAllMemberships(CMSDataContext Db)
        {
            var list = (from om in Db.OrganizationMembers
                        where om.PeopleId == PeopleId
                        select om).ToList();

            foreach (var om in list)
            {
                om.Drop(Db, CMSImageDataContext.Create(Db.Host), DateTime.Now);
            }
        }
Пример #28
0
 public string GetThumbUrl(CMSImageDataContext db)
 {
     if (!ThumbId.HasValue && LargeId.HasValue)
     {
         var large = db.Images.SingleOrDefault(ii => ii.Id == LargeId);
         if (large != null)
         {
             ThumbId = large.CreateNewTinyImage(db).Id;
         }
     }
     return($"/TinyImage/{ThumbId ?? -1}?v={CreatedDate?.Ticks ?? 0}");
 }
Пример #29
0
        public void DeleteOnSubmitTest()
        {
            var db    = CMSImageDataContext.Create(Util.Host);
            var image = CreateJpegImage();

            db.Images.InsertOnSubmit(image);
            db.SubmitChanges();

            db.DeleteOnSubmit(image.Id);
            db.SubmitChanges();
            db.Images.Where(i => i.Id == image.Id).Any().ShouldBeFalse();
        }
Пример #30
0
        public MobileTask populate(IncompleteTask task, int currentPeopleID, CMSImageDataContext cmsidb)
        {
            id = task.Id;

            status   = task.Status;
            statusID = task.StatusId ?? 0;

            created = task.CreatedOn;
            due     = task.Due;

            completeWithContact = task.ForceCompleteWContact ?? false;

            owner   = task.Owner;
            ownerID = task.OwnerId;

            delegated   = task.DelegatedTo;
            delegatedID = task.CoOwnerId ?? 0;

            about   = task.About ?? "";
            aboutID = task.WhoId ?? 0;

            desc          = task.Description;
            notes         = task.Notes;
            declineReason = task.DeclineReason;

            if (task.AboutPictureId != null)
            {
                var image = cmsidb.Images.SingleOrDefault(i => i.Id == task.AboutPictureId);

                if (image != null)
                {
                    picture  = Convert.ToBase64String(image.Bits);
                    pictureX = task.PictureX ?? 0;
                    pictureY = task.PictureY ?? 0;
                }
            }

            if (delegatedID > 0 && delegatedID != currentPeopleID)
            {
                type = MobileTask.TYPE_DELEGATED;
            }
            else if (statusID == 10)
            {
                type = MobileTask.TYPE_ACTIVE;
            }
            else
            {
                type = MobileTask.TYPE_PENDING;
            }

            return(this);
        }