コード例 #1
0
        public static int GetPermissionToUpdateShipmentDocumentation(ModelUpdate model, PermissionRange permissionRange, ICurrentUser currentUser, List <string> authorizeUserIds)
        {
            int code = 403;

            switch (permissionRange)
            {
            case PermissionRange.All:
                code = 200;
                break;

            case PermissionRange.Owner:
                if (model.PersonInCharge == currentUser.UserID ||
                    model.UserCreated == currentUser.UserID ||
                    authorizeUserIds.Contains(model.PersonInCharge))
                {
                    code = 200;
                }
                break;

            case PermissionRange.Group:
                if ((model.GroupId == currentUser.GroupId &&
                     model.DepartmentId == currentUser.DepartmentId &&
                     model.OfficeId == currentUser.OfficeID &&
                     model.CompanyId == currentUser.CompanyID) ||
                    authorizeUserIds.Contains(model.PersonInCharge))
                {
                    code = 200;
                }
                break;

            case PermissionRange.Department:
                if ((model.DepartmentId == currentUser.DepartmentId &&
                     model.OfficeId == currentUser.OfficeID &&
                     model.CompanyId == currentUser.CompanyID) ||
                    authorizeUserIds.Contains(model.PersonInCharge))
                {
                    code = 200;
                }
                break;

            case PermissionRange.Office:
                if ((model.OfficeId == currentUser.OfficeID &&
                     model.CompanyId == currentUser.CompanyID) ||
                    authorizeUserIds.Contains(model.PersonInCharge))
                {
                    code = 200;
                }
                break;

            case PermissionRange.Company:
                if (model.CompanyId == currentUser.CompanyID ||
                    authorizeUserIds.Contains(model.PersonInCharge))
                {
                    code = 200;
                }
                break;
            }
            return(code);
        }
コード例 #2
0
 public ActionResult ActionUpdate(ModelUpdate inputData, int position)
 {
     CurrentCube.ListCube[position].UpdateCube(inputData);
     return(Json(new
     {
         esUpdate = true
     }));
 }
コード例 #3
0
        public static int GetPermissionToDelete(ModelUpdate model, PermissionRange permissionRange, ICurrentUser currentUser)
        {
            int code = 0;

            switch (permissionRange)
            {
            case PermissionRange.None:
                code = 403;
                break;

            case PermissionRange.Owner:
                if (model.PartnerGroup.Contains("CUSTOMER"))
                {
                    if (model.Salemans.FindAll(x => x.SaleManId == currentUser.UserID).Count == 0 && model.UserCreator != currentUser.UserID)
                    {
                        code = 403;
                    }
                }
                else
                {
                    if (model.UserCreator != currentUser.UserID)
                    {
                        code = 403;
                    }
                }
                break;

            case PermissionRange.Group:
                if (model.GroupId != currentUser.GroupId && model.DepartmentId == currentUser.DepartmentId)
                {
                    code = 403;
                }
                break;

            case PermissionRange.Department:
                if (model.DepartmentId != currentUser.DepartmentId)
                {
                    code = 403;
                }
                break;

            case PermissionRange.Office:
                if (model.OfficeId != currentUser.OfficeID)
                {
                    code = 403;
                }
                break;

            case PermissionRange.Company:
                if (model.CompanyId != currentUser.CompanyID)
                {
                    code = 403;
                }
                break;
            }
            return(code);
        }
コード例 #4
0
        public static int GetPermissionToDelete(ModelUpdate model, PermissionRange permissionRange, ICurrentUser currentUser)
        {
            int code = 403;

            switch (permissionRange)
            {
            case PermissionRange.All:
                code = 200;
                break;

            case PermissionRange.Owner:
                if (model.BillingOpsId == currentUser.UserID)
                {
                    code = 200;
                }
                break;

            case PermissionRange.Group:
                if (model.GroupId == currentUser.GroupId &&
                    model.DepartmentId == currentUser.DepartmentId &&
                    model.OfficeId == currentUser.OfficeID &&
                    model.CompanyId == currentUser.CompanyID)
                {
                    code = 200;
                }
                break;

            case PermissionRange.Department:
                if (model.DepartmentId == currentUser.DepartmentId &&
                    model.OfficeId == currentUser.OfficeID &&
                    model.CompanyId == currentUser.CompanyID)
                {
                    code = 200;
                }
                break;

            case PermissionRange.Office:
                if (model.OfficeId == currentUser.OfficeID &&
                    model.CompanyId == currentUser.CompanyID)
                {
                    code = 200;
                }
                break;

            case PermissionRange.Company:
                if (model.CompanyId == currentUser.CompanyID)
                {
                    code = 200;
                }
                break;
            }
            return(code);
        }
コード例 #5
0
        public void ActionUpdateNotNull()
        {
            // Arrange
            HomeController controller = new HomeController();
            ModelUpdate    update     = new ModelUpdate();

            // Act
            ActionResult result = controller.ActionUpdate(update, 0) as ActionResult;

            // Assert
            Assert.IsNotNull(result);
        }
コード例 #6
0
        /// <summary>
        /// This method is started by the first message of a batch and waits for a specified amount of time before forwarding the entire batch.
        /// </summary>
        /// <param name="message">The first message</param>
        /// <returns></returns>
        private async Task StartCollect(ModelUpdate message)
        {
            lock (_batchLock)
            {
                _batch.AddOrUpdate(message.Property, message, (key, old) => (old.TimestampUtc > message.TimestampUtc) ? (old) : (message));
            }
            await Task.Delay(_delayMilliseconds);

            lock (_onMessageModeLock)
            {
                lock (_batchLock)
                {
                    SendAndClearBag();
                }
                _isCollectionMode = false;
            }
        }
コード例 #7
0
 /// <summary>
 /// Receives a ModelUpdate for delivery after the current waiting delay has completed.
 /// ModelUpdates will NOT be sent out if they are superseded by new updates for the same property with greater TimestampUtc
 /// </summary>
 /// <param name="mu"></param>
 public void OnMessage(ModelUpdate message)
 {
     lock (_onMessageModeLock)
     {
         if (_isCollectionMode)
         {
             lock (_batchLock)
             {
                 _batch.AddOrUpdate(message.Property, message, (key, old) => (old.TimestampUtc > message.TimestampUtc)?(old):(message));
             }
         }
         else
         {
             _isCollectionMode   = true;
             _collectionWaitTask = StartCollect(message);
         }
     }
 }
コード例 #8
0
        //-------------------Tool Methods-------------------------------------

        public DataItemUpdate makeDataItemUpdate(ModelUpdate modelUpdate)
        {
            EModelType modelType = (EModelType)modelUpdate.modelType;

            switch (modelType)
            {
            case EModelType.modelAssignemt:
                ModelAssignment assignment = JsonConvert.DeserializeObject <ModelAssignment>(modelUpdate.modelItemAsJson);
                return(new DataItemUpdate(modelUpdate.dataKey, assignment));

            case EModelType.modelClassRoom:
                ModelClassRoom classRoom = JsonConvert.DeserializeObject <ModelClassRoom>(modelUpdate.modelItemAsJson);
                return(new DataItemUpdate(modelUpdate.dataKey, classRoom));

            case EModelType.modelUser:
                ModelUser user = JsonConvert.DeserializeObject <ModelUser>(modelUpdate.modelItemAsJson);
                return(new DataItemUpdate(modelUpdate.dataKey, user));
            }
            return(null);
        }
コード例 #9
0
        private int GetPermissionToDelete(ModelUpdate model, PermissionRange permissionRange)
        {
            int code = PermissionEx.GetPermissionToDelete(model, permissionRange, currentUser);

            return(code);
        }
コード例 #10
0
        private int GetPermissionToUpdate(ModelUpdate model, PermissionRange permissionRange, int?flagDetail)
        {
            int code = PermissionEx.GetPermissionToUpdate(model, permissionRange, currentUser, flagDetail);

            return(code);
        }