public NTStatus GetFileInformation(out QueryInformation result, object handle, QueryInformationLevel informationLevel)
        {
            result = null;
            int maxOutputLength = 4096;
            Transaction2QueryFileInformationRequest subcommand = new Transaction2QueryFileInformationRequest();

            subcommand.FID = (ushort)handle;
            subcommand.QueryInformationLevel = informationLevel;

            Transaction2Request request = new Transaction2Request();

            request.Setup               = subcommand.GetSetup();
            request.TransParameters     = subcommand.GetParameters(m_client.Unicode);
            request.TransData           = subcommand.GetData(m_client.Unicode);
            request.TotalDataCount      = (ushort)request.TransData.Length;
            request.TotalParameterCount = (ushort)request.TransParameters.Length;
            request.MaxParameterCount   = Transaction2QueryFileInformationResponse.ParametersLength;
            request.MaxDataCount        = (ushort)maxOutputLength;

            TrySendMessage(request);
            SMB1Message reply = m_client.WaitForMessage(CommandName.SMB_COM_TRANSACTION2);

            if (reply != null)
            {
                if (reply.Header.Status == NTStatus.STATUS_SUCCESS && reply.Commands[0] is Transaction2Response)
                {
                    Transaction2Response response = (Transaction2Response)reply.Commands[0];
                    Transaction2QueryFileInformationResponse subcommandResponse = new Transaction2QueryFileInformationResponse(response.TransParameters, response.TransData, reply.Header.UnicodeFlag);
                    result = subcommandResponse.GetQueryInformation(informationLevel);
                }
                return(reply.Header.Status);
            }
            return(NTStatus.STATUS_INVALID_SMB);
        }
        public void Delete()
        {
            QueryInformation query;

            if (this.Id == Guid.Empty)
            {
                Debug.WriteLine("Error: You can delete this record as an actual Database record doesn't exist for it. EnhancementModel : Delete()");
                return;
            }

            //We need to delete any associated records before deleting this one
            //TODO: EnhancementRankModel.DeleteAllbyEnhancementId(this.Id);
            //TODO: EnhancementRankModifierModel.DeleteAllByEnhancementId(this.Id);
            //TODO: EnhancementRankRequirementModel.DeleteAllByEnhancementId(this.Id);

            //we need to remove any Enhancement entries in other tables for this feat

            query = QueryInformation.Create(EnhancementModel.DeleteQuery);

            query.CommandType = CommandType.Text;
            query.Parameters.Add(new QueryParameter("@" + EnhancementModel.IdField, DbType.Guid, this.Id));
            BaseModel.RunCommand(query);

            //lets rest the id to empty so that the model knows it is now a new record if the save method is called.
            this.Id = Guid.Empty;
        }
        public void Save()
        {
            QueryInformation query;

            if (this.Id == Guid.Empty)
            {
                query   = QueryInformation.Create(EnhancementModel.InsertQuery);
                this.Id = Guid.NewGuid();
            }
            else
            {
                query = QueryInformation.Create(EnhancementModel.UpdateQuery);
            }

            query.CommandType = CommandType.Text;
            query.Parameters.Add(new QueryParameter("@" + EnhancementModel.IdField, DbType.Guid, this.Id));
            query.Parameters.Add(new QueryParameter("@" + EnhancementModel.EnhancementSlotIdField, DbType.Guid, this.EnhancementSlotId));
            query.Parameters.Add(new QueryParameter("@" + EnhancementModel.DisplayOrderField, DbType.Byte, this.DisplayOrder));
            query.Parameters.Add(new QueryParameter("@" + EnhancementModel.NameField, DbType.String, this.Name));
            query.Parameters.Add(new QueryParameter("@" + EnhancementModel.APCostField, DbType.Int16, this.APCost));
            query.Parameters.Add(new QueryParameter("@" + EnhancementModel.IconField, DbType.String, this.Icon));
            if (StanceId == Guid.Empty)
            {
                query.Parameters.Add(new QueryParameter("@" + EnhancementModel.StanceIdField, DbType.Guid, null));
            }
            else
            {
                query.Parameters.Add(new QueryParameter("@" + EnhancementModel.StanceIdField, DbType.Guid, this.StanceId));
            }
            query.Parameters.Add(new QueryParameter("@" + EnhancementModel.LastUpdatedDateField, DbType.DateTime, DateTime.Now));
            query.Parameters.Add(new QueryParameter("@" + EnhancementModel.LastUpdatedVersionField, DbType.String, Constant.PlannerVersion));

            BaseModel.RunCommand(query);
        }
        public void Save()
        {
            QueryInformation query;

            if (this.Id == Guid.Empty)
            {
                query   = QueryInformation.Create(ClassLevelDetailModel.InsertQuery);
                this.Id = Guid.NewGuid();
            }
            else
            {
                query = QueryInformation.Create(ClassLevelDetailModel.UpdateQuery);
            }

            //update the last modified fields
            LastUpdatedDate    = DateTime.Now;
            LastUpdatedVersion = Constant.PlannerVersion;

            query.CommandType = CommandType.Text;
            query.Parameters.Add(new QueryParameter("@" + ClassLevelDetailModel.IdField, DbType.Guid, this.Id));
            query.Parameters.Add(new QueryParameter("@" + ClassLevelDetailModel.ClassIdField, DbType.Guid, this.ClassId));
            query.Parameters.Add(new QueryParameter("@" + ClassLevelDetailModel.LevelField, DbType.Byte, this.Level));
            query.Parameters.Add(new QueryParameter("@" + ClassLevelDetailModel.FortitudeSaveField, DbType.Int32, this.FortitudeSave));
            query.Parameters.Add(new QueryParameter("@" + ClassLevelDetailModel.ReflexSaveField, DbType.Int32, this.ReflexSave));
            query.Parameters.Add(new QueryParameter("@" + ClassLevelDetailModel.WillSaveField, DbType.Int32, this.WillSave));
            query.Parameters.Add(new QueryParameter("@" + ClassLevelDetailModel.BaseAttackBonusField, DbType.Int32, this.BaseAttackBonus));
            query.Parameters.Add(new QueryParameter("@" + ClassLevelDetailModel.FeatTypeIdField, DbType.Guid, this.FeatTypeId));
            query.Parameters.Add(new QueryParameter("@" + LastUpdatedDateField, DbType.DateTime, LastUpdatedDate));
            query.Parameters.Add(new QueryParameter("@" + LastUpdatedVersionField, DbType.String, LastUpdatedVersion));

            BaseModel.RunCommand(query);
        }
Exemple #5
0
        public void Save()
        {
            QueryInformation query;

            if (Id == Guid.Empty)
            {
                query = QueryInformation.Create(InsertQuery);
                Id    = Guid.NewGuid();
            }
            else
            {
                query = QueryInformation.Create(UpdateQuery);
            }

            //update the last modified fields
            LastUpdatedDate    = DateTime.Now;
            LastUpdatedVersion = Constant.PlannerVersion;

            query.CommandType = CommandType.Text;
            query.Parameters.Add(new QueryParameter("@" + IdField, DbType.Guid, Id));
            query.Parameters.Add(new QueryParameter("@" + TypeField, DbType.String, TomeType));
            query.Parameters.Add(new QueryParameter("@" + ModifiedIDField, DbType.Guid, ModifiedID));
            query.Parameters.Add(new QueryParameter("@" + MinLevelField, DbType.Int16, MinLevel));
            query.Parameters.Add(new QueryParameter("@" + NameField, DbType.String, TomeName));
            query.Parameters.Add(new QueryParameter("@" + LongNameField, DbType.String, TomeLongName));
            query.Parameters.Add(new QueryParameter("@" + BonusField, DbType.Int16, TomeBonus));
            query.Parameters.Add(new QueryParameter("@" + LastUpdatedDateField, DbType.DateTime, LastUpdatedDate));
            query.Parameters.Add(new QueryParameter("@" + LastUpdatedVersionField, DbType.String, LastUpdatedVersion));
            BaseModel.RunCommand(query);

            return;
        }
        public void Save()
        {
            QueryInformation query;

            if (this.Id == Guid.Empty)
            {
                query   = QueryInformation.Create(FeatRequirementModel.InsertQuery);
                this.Id = Guid.NewGuid();
            }
            else
            {
                query = QueryInformation.Create(FeatRequirementModel.UpdateQuery);
            }

            query.CommandType = CommandType.Text;
            query.Parameters.Add(new QueryParameter("@" + FeatRequirementModel.IdField, DbType.Guid, this.Id));
            query.Parameters.Add(new QueryParameter("@" + FeatRequirementModel.FeatIdField, DbType.Guid, this.FeatId));
            query.Parameters.Add(new QueryParameter("@" + FeatRequirementModel.RequireAllField, DbType.Boolean, this.RequireAll));
            query.Parameters.Add(new QueryParameter("@" + FeatRequirementModel.LastUpdatedDateField, DbType.DateTime, DateTime.Now));
            query.Parameters.Add(new QueryParameter("@" + FeatRequirementModel.LastUpdatedVersionField, DbType.String, Constant.PlannerVersion));
            query.Parameters.Add(new QueryParameter("@" + FeatRequirementModel.RequirementIdField, DbType.Guid, this.RequirementId));
            query.Parameters.Add(new QueryParameter("@" + FeatRequirementModel.ValueField, DbType.Double, this.Value));
            query.Parameters.Add(new QueryParameter("@" + FeatRequirementModel.ComparisonField, DbType.String, this.Comparison));
            BaseModel.RunCommand(query);
        }
Exemple #7
0
        public void Save()
        {
            QueryInformation query;

            if (this.Id == Guid.Empty)
            {
                query   = QueryInformation.Create(EnhancementRankRequirementModel.InsertQuery);
                this.Id = Guid.NewGuid();
            }
            else
            {
                query = QueryInformation.Create(EnhancementRankRequirementModel.UpdateQuery);
            }

            query.CommandType = CommandType.Text;
            query.Parameters.Add(new QueryParameter("@" + EnhancementRankRequirementModel.IdField, DbType.Guid, this.Id));
            query.Parameters.Add(new QueryParameter("@" + EnhancementRankRequirementModel.EnhancementRankIdField, DbType.Guid, this.EnhancementRankId));
            query.Parameters.Add(new QueryParameter("@" + EnhancementRankRequirementModel.RequireAllField, DbType.Boolean, this.RequireAll));
            query.Parameters.Add(new QueryParameter("@" + EnhancementRankRequirementModel.LastUpdatedDateField, DbType.DateTime, DateTime.Now));
            query.Parameters.Add(new QueryParameter("@" + EnhancementRankRequirementModel.LastUpdatedVersionField, DbType.String, Constant.PlannerVersion));
            query.Parameters.Add(new QueryParameter("@" + EnhancementRankRequirementModel.RequirementIdField, DbType.Guid, this.RequirementId));
            query.Parameters.Add(new QueryParameter("@" + EnhancementRankRequirementModel.RequirementValueField, DbType.Double, this.RequirementValue));
            query.Parameters.Add(new QueryParameter("@" + EnhancementRankRequirementModel.ComparisonField, DbType.String, this.Comparison));
            BaseModel.RunCommand(query);

            //This is for testing purposes, remove when done
            Debug.WriteLine("Record has been saved: " + this.Id);
        }
        public void Save()
        {
            QueryInformation query;

            if (this.Id == Guid.Empty)
            {
                query   = QueryInformation.Create(RaceLevelDetailModel.InsertQuery);
                this.Id = Guid.NewGuid();
            }
            else
            {
                query = QueryInformation.Create(RaceLevelDetailModel.UpdateQuery);
            }

            //update the last modified fields
            LastUpdatedDate    = DateTime.Now;
            LastUpdatedVersion = Constant.PlannerVersion;

            query.CommandType = CommandType.Text;
            query.Parameters.Add(new QueryParameter("@" + RaceLevelDetailModel.IdField, DbType.Guid, this.Id));
            query.Parameters.Add(new QueryParameter("@" + RaceLevelDetailModel.RaceIdField, DbType.Guid, this.RaceId));
            query.Parameters.Add(new QueryParameter("@" + RaceLevelDetailModel.LevelField, DbType.Int32, this.Level));
            if (FeatTypeId == Guid.Empty)
            {
                query.Parameters.Add(new QueryParameter("@" + RaceLevelDetailModel.FeatTypeIdField, DbType.Guid, null));
            }
            else
            {
                query.Parameters.Add(new QueryParameter("@" + RaceLevelDetailModel.FeatTypeIdField, DbType.Guid, this.FeatTypeId));
            }
            query.Parameters.Add(new QueryParameter("@" + RaceLevelDetailModel.BonusSkillPointsField, DbType.Int32, this.BonusSkillPoints));
            query.Parameters.Add(new QueryParameter("@" + RaceLevelDetailModel.LastUpdatedDateField, DbType.DateTime, this.LastUpdatedDate));
            query.Parameters.Add(new QueryParameter("@" + RaceLevelDetailModel.LastUpdatedVersionField, DbType.String, this.LastUpdatedVersion));
            BaseModel.RunCommand(query);
        }
Exemple #9
0
        public void Save()
        {
            QueryInformation query;

            if (this.Id == Guid.Empty)
            {
                query   = QueryInformation.Create(EnhancementSlotModel.InsertQuery);
                this.Id = Guid.NewGuid();
            }
            else
            {
                query = QueryInformation.Create(EnhancementSlotModel.UpdateQuery);
            }

            query.CommandType = CommandType.Text;
            query.Parameters.Add(new QueryParameter("@" + EnhancementSlotModel.IdField, DbType.Guid, this.Id));
            query.Parameters.Add(new QueryParameter("@" + EnhancementSlotModel.EnhancementTreeIdField, DbType.Guid, this.EnhancementTreeId));
            query.Parameters.Add(new QueryParameter("@" + EnhancementSlotModel.SlotIndexField, DbType.Int32, this.SlotIndex));
            query.Parameters.Add(new QueryParameter("@" + EnhancementSlotModel.APRequirementField, DbType.Int32, this.APRequirement));
            query.Parameters.Add(new QueryParameter("@" + EnhancementSlotModel.NameField, DbType.String, this.Name));
            query.Parameters.Add(new QueryParameter("@" + EnhancementSlotModel.DescriptionField, DbType.String, this.Description));
            query.Parameters.Add(new QueryParameter("@" + EnhancementSlotModel.IconField, DbType.String, this.Icon));
            query.Parameters.Add(new QueryParameter("@" + EnhancementSlotModel.ActiveField, DbType.Boolean, this.Active));
            query.Parameters.Add(new QueryParameter("@" + EnhancementSlotModel.LastUpdatedDateField, DbType.DateTime, DateTime.Now));
            query.Parameters.Add(new QueryParameter("@" + EnhancementSlotModel.LastUpdatedVersionField, DbType.String, Constant.PlannerVersion));
            query.Parameters.Add(new QueryParameter("@" + EnhancementSlotModel.UseEnhancementInfoField, DbType.Boolean, this.UseEnhancementInfo));

            BaseModel.RunCommand(query);
        }
        public void Save()
        {
            QueryInformation query;

            if (this.Id == Guid.Empty)
            {
                query   = QueryInformation.Create(CharacterBonusFeatModel.InsertQuery);
                this.Id = Guid.NewGuid();
            }
            else
            {
                query = QueryInformation.Create(CharacterBonusFeatModel.UpdateQuery);
            }

            //update the last modified fields
            LastUpdatedDate    = DateTime.Now;
            LastUpdatedVersion = Constant.PlannerVersion;

            query.CommandType = CommandType.Text;
            query.Parameters.Add(new QueryParameter("@" + CharacterBonusFeatModel.IdField, DbType.Guid, this.Id));
            query.Parameters.Add(new QueryParameter("@" + CharacterBonusFeatModel.FeatIdField, DbType.Guid, this.FeatId));
            query.Parameters.Add(new QueryParameter("@" + CharacterBonusFeatModel.IgnorePreReqsField, DbType.Boolean, this.IgnorePreRequirements));
            query.Parameters.Add(new QueryParameter("@" + CharacterBonusFeatModel.LevelField, DbType.Byte, this.Level));
            query.Parameters.Add(new QueryParameter("@" + CharacterBonusFeatModel.LastUpdatedDateField, DbType.DateTime, this.LastUpdatedDate));
            query.Parameters.Add(new QueryParameter("@" + CharacterBonusFeatModel.LastUpdatedVersionField, DbType.String, this.LastUpdatedVersion));

            BaseModel.RunCommand(query);
        }
Exemple #11
0
        public void Save()
        {
            QueryInformation query;

            if (this.Id == Guid.Empty)
            {
                query   = QueryInformation.Create(FeatCategoryModel.InsertQuery);
                this.Id = Guid.NewGuid();
            }
            else
            {
                query = QueryInformation.Create(FeatCategoryModel.UpdateQuery);
            }

            query.CommandType = CommandType.Text;
            query.Parameters.Add(new QueryParameter("@" + FeatCategoryModel.IdField, DbType.Guid, this.Id));
            query.Parameters.Add(new QueryParameter("@" + FeatCategoryModel.NameField, DbType.String, this.Name));
            query.Parameters.Add(new QueryParameter("@" + FeatCategoryModel.DescriptionField, DbType.String, this.Description));
            query.Parameters.Add(new QueryParameter("@" + FeatCategoryModel.ParentFeatCategoryIdField, DbType.Guid, this.ParentFeatCategoryId));
            query.Parameters.Add(new QueryParameter("@" + FeatCategoryModel.LastUpdatedDateField, DbType.DateTime, DateTime.Now));
            query.Parameters.Add(new QueryParameter("@" + FeatCategoryModel.LastUpdatedVersionField, DbType.String, Constant.PlannerVersion));
            query.Parameters.Add(new QueryParameter("@" + FeatCategoryModel.IconNameField, DbType.String, this.IconName));

            BaseModel.RunCommand(query);
        }
Exemple #12
0
        public void Delete()
        {
            QueryInformation query;

            //alignments
            query             = QueryInformation.Create(ClassModel.DeleteAlignmentsQuery);
            query.CommandType = CommandType.Text;
            query.Parameters.Add(new QueryParameter("@" + ClassModel.IdField, DbType.Guid, this.Id));
            BaseModel.RunCommand(query);

            //class skills
            query             = QueryInformation.Create(ClassModel.DeleteClassSkillsQuery);
            query.CommandType = CommandType.Text;
            query.Parameters.Add(new QueryParameter("@" + ClassModel.IdField, DbType.Guid, this.Id));
            BaseModel.RunCommand(query);

            //level details
            Array.ForEach(LevelDetails, item => item.Delete());

            //record
            query             = QueryInformation.Create(ClassModel.DeleteQuery);
            query.CommandType = CommandType.Text;
            query.Parameters.Add(new QueryParameter("@" + ClassModel.IdField, DbType.Guid, this.Id));
            BaseModel.RunCommand(query);
        }
Exemple #13
0
        public ClassModel()
        {
            QueryInformation   query;
            List <string>      destinyNames;
            DestinySphereModel DefaultDestiny;

            //set up default values for properties where needed
            Name         = DefaultName;
            Abbreviation = DefaultAbbreviation;

            //starting destiny sphere
            destinyNames   = DestinySphereModel.GetNames();
            DefaultDestiny = new DestinySphereModel();
            DefaultDestiny.Initialize(destinyNames[0]);
            MaxSpellLevel           = 0;
            StartingDestinySphereId = DefaultDestiny.Id;

            ImageFilename = DefaultImageFilename;
            Description   = DefaultDescription;
            LevelDetails  = new ClassLevelDetailModel[Constant.NumHeroicLevels];
            for (int i = 0; i < Constant.NumHeroicLevels; i++)
            {
                LevelDetails[i] = new ClassLevelDetailModel();
            }

            //the sequence and reincarnation priority number (default to last record in sequence)
            query                 = QueryInformation.Create(ClassModel.CountQuery);
            query.CommandType     = CommandType.Text;
            Sequence              = BaseModel.GetCount(query);
            ReincarnationPriority = Sequence;
        }
Exemple #14
0
        public static IQueryInformation GetQueryInformation(this IEnumerable <KeyValuePair <string, StringValues> > query)
        {
            var info = new QueryInformation();

            foreach (var pair in query)
            {
                var key = pair.Key.ToLower();
                switch (key)
                {
                case "filter":
                    info.Filter = pair.Value;
                    break;

                case "sort":
                    info.Sort = pair.Value;
                    break;

                case "pagesize":
                    if (int.TryParse(pair.Value, out var pageSize))
                    {
                        info.PageSize = pageSize;
                    }
                    break;

                case "skippages":
                    if (int.TryParse(pair.Value, out var skipPages))
                    {
                        info.SkipPages = skipPages;
                    }
                    break;
                }
            }

            return(info);
        }
Exemple #15
0
        /// <summary>
        /// Saves the currently loaded EnhancementRankModifier
        /// </summary>
        public void Save()
        {
            QueryInformation query;

            if (this.Id == Guid.Empty)
            {
                query   = QueryInformation.Create(EnhancementRankModifierModel.InsertQuery);
                this.Id = Guid.NewGuid();
            }
            else
            {
                query = QueryInformation.Create(EnhancementRankModifierModel.UpdateQuery);
            }

            query.CommandType = CommandType.Text;
            query.Parameters.Add(new QueryParameter("@" + EnhancementRankModifierModel.IdField, DbType.Guid, this.Id));
            query.Parameters.Add(new QueryParameter("@" + EnhancementRankModifierModel.EnhancementRankIdField, DbType.Guid, this.EnhancementRankId));
            query.Parameters.Add(new QueryParameter("@" + EnhancementRankModifierModel.ModifierIdField, DbType.Guid, this.ModifierId));
            query.Parameters.Add(new QueryParameter("@" + EnhancementRankModifierModel.ModifierTypeField, DbType.Byte, this.ModifierType));
            query.Parameters.Add(new QueryParameter("@" + EnhancementRankModifierModel.ModifierMethodIdField, DbType.Guid, this.ModifierMethodId));
            query.Parameters.Add(new QueryParameter("@" + EnhancementRankModifierModel.PullFromIdField, DbType.Guid, this.PullFromId));
            query.Parameters.Add(new QueryParameter("@" + EnhancementRankModifierModel.ModifierValueField, DbType.Double, this.ModifierValue));
            query.Parameters.Add(new QueryParameter("@" + EnhancementRankModifierModel.BonusTypeIdField, DbType.Guid, this.BonusTypeId));
            query.Parameters.Add(new QueryParameter("@" + EnhancementRankModifierModel.RequirementIdField, DbType.Guid, this.RequirementId));
            query.Parameters.Add(new QueryParameter("@" + EnhancementRankModifierModel.StanceIdField, DbType.Guid, this.StanceId));
            query.Parameters.Add(new QueryParameter("@" + EnhancementRankModifierModel.ComparisonField, DbType.String, this.Comparison));
            query.Parameters.Add(new QueryParameter("@" + EnhancementRankModifierModel.RequirementValueField, DbType.Double, this.RequirementValue));
            query.Parameters.Add(new QueryParameter("@" + EnhancementRankModifierModel.LastUpdatedDateField, DbType.DateTime, DateTime.Now));
            query.Parameters.Add(new QueryParameter("@" + EnhancementRankModifierModel.LastUpdatedVersionField, DbType.String, Constant.PlannerVersion));

            BaseModel.RunCommand(query);
        }
Exemple #16
0
        public void Delete()
        {
            QueryInformation query;

            if (this.Id == Guid.Empty)
            {
                Debug.WriteLine("Error: You can't delete this record as one doesn't exist for it. StanceModel:Delete()");
                return;
            }
            //We need to delete any associated records first before deleteing this Stance record
            //TODO: FeatModifierModel.DeleteAllByStanceId(this.id);
            //TODO: EnhancementRankModel.DeleteAllByStanceId(this.id);
            //TODO: DestinyRankModel.DeleteAllByStanceId(this.id);

            //We need to update any associated records first before deleting this Stance Record
            //TODO: FeatModel.UpdateStanceIdWithNull(this.Id);
            //TODO: Enhancement.UpdateStanceIdWithNull(this.Id);

            query = QueryInformation.Create(StanceModel.DeleteQuery);

            query.CommandType = CommandType.Text;
            query.Parameters.Add(new QueryParameter("@" + StanceModel.IdField, DbType.Guid, this.Id));
            BaseModel.RunCommand(query);
            //reset the id so that the model knows it is a new record if someone tries to call the save() method afterwards.
            this.Id = Guid.Empty;
        }