コード例 #1
0
        public MobileItemDetails GetItemDetails(MobileItemRequestDetails mobileItemRequestDetails)
        {
            string            message           = string.Empty;
            string            status            = string.Empty;
            bool              isValidVersion    = true;
            MobileItemDetails mobileItemDetails = new MobileItemDetails();

            try
            {
                using (StageBitzDB dataContext = new StageBitzDB())
                {
                    isValidVersion = Helper.IsValidAppVersion(mobileItemRequestDetails.Version, out status);
                    if (isValidVersion)
                    {
                        //Check the user security
                        int userId = int.Parse(Utils.DecryptStringAES(mobileItemRequestDetails.Token));

                        if (Utils.CanAccessInventory(mobileItemRequestDetails.CompanyId, userId))
                        {
                            Item item = dataContext.Items.Where(i => i.ItemId == mobileItemRequestDetails.ItemId).FirstOrDefault();
                            if (item != null)
                            {
                                InventoryBL inventoryBL = new InventoryBL(dataContext);
                                mobileItemDetails.ItemId      = item.ItemId;
                                mobileItemDetails.Status      = "OK";
                                mobileItemDetails.Name        = item.Name;
                                mobileItemDetails.ItemTypeId  = item.ItemTypeId.HasValue ? item.ItemTypeId.Value : 0;
                                mobileItemDetails.Description = item.Description;
                                mobileItemDetails.Quantity    = item.Quantity.HasValue ? item.Quantity.Value : 0;
                                mobileItemDetails.CanEditItem = inventoryBL.GetItemStatusInformationForUser(item, mobileItemRequestDetails.CompanyId, userId).IsReadOnly ? 0 : 1;
                                //Get Item Status
                                mobileItemDetails.ItemStatus = inventoryBL.GetItemStatus(item.ItemId);

                                mobileItemDetails.LastUpdatedDate = item.LastUpdatedDate.HasValue ? item.LastUpdatedDate.Value : item.CreatedDate.Value;
                                UtilityBL utilityBL = new UtilityBL(dataContext);

                                var medias = utilityBL.GetDocumentMedias("Item", item.ItemId, true, null);
                                if (medias.Count > 0)
                                {
                                    var docMediaIdList = medias.OrderByDescending(m => m.SortOrder).ThenBy(m => m.DocumentMediaId).Select(m => m.DocumentMediaId).ToList <int>();
                                    mobileItemDetails.DocumentMediaIdList = docMediaIdList;
                                }
                            }
                            else
                            {
                                mobileItemDetails.Status  = "NOTOK";
                                mobileItemDetails.Message = "Item not exist.";
                            }
                        }
                        else
                        {
                            mobileItemDetails.Status  = "NOTOK";
                            mobileItemDetails.Message = "Check settings with Company Administrator.";
                        }
                    }
                    else
                    {
                        mobileItemDetails.Status  = "NOTOK";
                        mobileItemDetails.Message = "Please update App.";
                    }
                }
            }
            catch (Exception ex)
            {
                AgentErrorLog.HandleException(ex);
                mobileItemDetails.Status  = "ERROR";
                mobileItemDetails.Message = "Oops! Unkown error. Sorry...";
            }
            return(mobileItemDetails);
        }