示例#1
0
        public ActionResult JoinOrg(string data)
        {
            // Authenticate first
            var authError = Authenticate();

            if (authError != null)
            {
                return(authError);
            }

            // Check Role
            if (!CMSRoleProvider.provider.IsUserInRole(AccountModel.UserName2, "Attendance"))
            {
                return(BaseMessage.createErrorReturn("Attendance role is required to take attendance for organizations."));
            }

            // Check to see if type matches
            BaseMessage dataIn = BaseMessage.createFromString(data);

            if (dataIn.type != BaseMessage.API_TYPE_ORG_JOIN)
            {
                return(BaseMessage.createTypeErrorReturn());
            }

            // Everything is in order, start the return
            MobilePostJoinOrg mpjo = JsonConvert.DeserializeObject <MobilePostJoinOrg>(dataIn.data);

            var om = DbUtil.Db.OrganizationMembers.SingleOrDefault(m => m.PeopleId == mpjo.peopleID && m.OrganizationId == mpjo.orgID);

            if (om != null)
            {
                if (mpjo.join)
                {
                    om = OrganizationMember.InsertOrgMembers(DbUtil.Db, mpjo.orgID, mpjo.peopleID, MemberTypeCode.Member, DateTime.Now, null, false);
                }
                else
                {
                    om.Drop(DbUtil.Db, addToHistory: true);
                }
            }

            DbUtil.Db.SubmitChanges();

            BaseMessage br = new BaseMessage();

            br.error = 0;
            br.count = 1;
            br.type  = BaseMessage.API_TYPE_ORG_JOIN;

            return(br);
        }
        public ActionResult JoinOrg(string data)
        {
            // Authenticate first
            var result = AuthenticateUser();

            if (!result.IsValid)
            {
                return(AuthorizationError(result));
            }

            // Check Role
            if (!CMSRoleProvider.provider.IsUserInRole(AccountModel.UserName2, "Attendance"))
            {
                return(BaseMessage.createErrorReturn("Attendance role is required to take attendance for organizations."));
            }

            BaseMessage       dataIn = BaseMessage.createFromString(data);
            MobilePostJoinOrg mpjo   = JsonConvert.DeserializeObject <MobilePostJoinOrg>(dataIn.data);

            var om = DbUtil.Db.OrganizationMembers.SingleOrDefault(m => m.PeopleId == mpjo.peopleID && m.OrganizationId == mpjo.orgID);

            if (om == null && mpjo.join)
            {
                om = OrganizationMember.InsertOrgMembers(DbUtil.Db, mpjo.orgID, mpjo.peopleID, MemberTypeCode.Member, DateTime.Now, null, false);
            }

            if (om != null && !mpjo.join)
            {
                om.Drop(DbUtil.Db, addToHistory: true);
            }

            DbUtil.Db.SubmitChanges();

            BaseMessage br = new BaseMessage();

            br.error = 0;
            br.count = 1;

            return(br);
        }