コード例 #1
0
        public SubstationViewModel(IServiceUnitOfWork serviceUnitOfWork, Substation substation)
        {
            this.serviceUnitOfWork = serviceUnitOfWork;
            oldSubstation          = substation;
            Substation newSubstation = new Substation();

            newSubstation.Name                      = substation.Name;
            newSubstation.InputYear                 = substation.InputYear;
            newSubstation.Team                      = substation.Team;
            newSubstation.TransformerType           = substation.TransformerType;
            newSubstation.DistrictElectricalNetwork = substation.DistrictElectricalNetwork;
            newSubstation.InspectionsFrequency      = substation.InspectionsFrequency;
            Substation = newSubstation;

            if (substation.Name != null)
            {
                InputYear        = substation.InputYear.ToString();
                TransformerCount = substation.TransformerCount.ToString();
            }

            Teams                      = serviceUnitOfWork.Teams.GetAll();
            TransformerTypes           = serviceUnitOfWork.TransformerTypes.GetAll();
            DistrictElectricalNetworks = serviceUnitOfWork.DistrictElectricalNetworks.GetAll();
            InspectionsFrequencies     = serviceUnitOfWork.InspectionsFrequencies.GetAll();
        }
コード例 #2
0
        public IServiceUnitOfWork GetUnitOfWork()
        {
            //if (_unit == null)
            _unit = ServiceLocator.Current.GetInstance <IServiceUnitOfWork>();

            return(_unit);
        }
コード例 #3
0
        public DeviceTypeViewModel(IServiceUnitOfWork serviceUnitOfWork, DeviceType deviceType)
        {
            this.serviceUnitOfWork = serviceUnitOfWork;
            oldDeviceType          = deviceType;
            DeviceType newDeviceType = new DeviceType();

            newDeviceType.Name = deviceType.Name;
            DeviceType         = newDeviceType;
        }
コード例 #4
0
        public ManufacturerViewModel(IServiceUnitOfWork serviceUnitOfWork, Manufacturer manufacturer)
        {
            this.serviceUnitOfWork = serviceUnitOfWork;
            oldManufacturer        = manufacturer;
            Manufacturer newManufacturer = new Manufacturer();

            newManufacturer.Name = manufacturer.Name;
            Manufacturer         = newManufacturer;
        }
コード例 #5
0
        public VoltageClassViewModel(IServiceUnitOfWork serviceUnitOfWork, VoltageClass voltageClass)
        {
            this.serviceUnitOfWork = serviceUnitOfWork;
            oldVoltageClass        = voltageClass;
            VoltageClass newVoltageClass = new VoltageClass();

            newVoltageClass.Name = voltageClass.Name;
            VoltageClass         = newVoltageClass;
        }
コード例 #6
0
        public MarkRecordViewModel(IServiceUnitOfWork serviceUnitOfWork, MaintainedEquipmentByCycle maintainedEquipmentByCycle)
        {
            this.serviceUnitOfWork          = serviceUnitOfWork;
            this.maintainedEquipmentByCycle = maintainedEquipmentByCycle;
            int cycleId = serviceUnitOfWork.MaintainedEquipmentsByCycleService.GetCurrentCycle(maintainedEquipmentByCycle).MaintenanceCycleId;
            MaintenanceCycle maintenanceCycle = serviceUnitOfWork.MaintenanceCycles.Get(cycleId);

            MaintenanceTypes = new ObservableCollection <MaintenanceType>(maintenanceCycle.MaintenanceYears.GroupBy(x => x.MaintenanceType).Select(x => x.Key).ToList());
        }
コード例 #7
0
        public TransformerTypeViewModel(IServiceUnitOfWork serviceUnitOfWork, TransformerType transformerType)
        {
            this.serviceUnitOfWork = serviceUnitOfWork;
            oldTransformerType     = transformerType;
            TransformerType newTransformerType = new TransformerType();

            newTransformerType.Name = transformerType.Name;
            TransformerType         = newTransformerType;
        }
コード例 #8
0
        public ElementBaseViewModel(IServiceUnitOfWork serviceUnitOfWork, ElementBase elementBase)
        {
            this.serviceUnitOfWork = serviceUnitOfWork;
            oldElementBase         = elementBase;
            ElementBase newElementBase = new ElementBase();

            newElementBase.Name        = elementBase.Name;
            newElementBase.Description = elementBase.Description;
            ElementBase = newElementBase;
        }
コード例 #9
0
        public InspectionsFrequencyViewModel(IServiceUnitOfWork serviceUnitOfWork, InspectionsFrequency inspectionsFrequency)
        {
            this.serviceUnitOfWork  = serviceUnitOfWork;
            oldInspectionsFrequency = inspectionsFrequency;
            InspectionsFrequency newInspectionsFrequency = new InspectionsFrequency();

            newInspectionsFrequency.Name  = InspectionsFrequency.Name;
            newInspectionsFrequency.Count = inspectionsFrequency.Count;
            InspectionsFrequency          = newInspectionsFrequency;
        }
        public DistrictElectricalNetworkViewModel(IServiceUnitOfWork serviceUnitOfWork, DistrictElectricalNetwork districtElectricalNetwork)
        {
            this.serviceUnitOfWork       = serviceUnitOfWork;
            oldDistrictElectricalNetwork = districtElectricalNetwork;
            DistrictElectricalNetwork newDistrictElectricalNetwork = new DistrictElectricalNetwork();

            newDistrictElectricalNetwork.Name = districtElectricalNetwork.Name;
            newDistrictElectricalNetwork.Head = districtElectricalNetwork.Head;
            DistrictElectricalNetwork         = newDistrictElectricalNetwork;
        }
コード例 #11
0
        public ManagementOrganizationViewModel(IServiceUnitOfWork serviceUnitOfWork, ManagementOrganization managementOrganization)
        {
            this.serviceUnitOfWork    = serviceUnitOfWork;
            oldManagementOrganization = managementOrganization;

            ManagementOrganization newManagementOrganization = new ManagementOrganization();

            oldManagementOrganization.Name = managementOrganization.Name;
            ManagementOrganization         = newManagementOrganization;
        }
コード例 #12
0
        public ActViewModel(IServiceUnitOfWork serviceUnitOfWork, Act act)
        {
            this.serviceUnitOfWork = serviceUnitOfWork;
            oldAct = act;
            Act newAct = new Act();

            newAct.Name         = act.Name;
            newAct.CreationDate = act.CreationDate;
            Act = newAct;
        }
コード例 #13
0
        public TeamViewModel(IServiceUnitOfWork serviceUnitOfWork, Team team)
        {
            this.serviceUnitOfWork = serviceUnitOfWork;
            oldTeam = team;
            Team newTeam = new Team();

            newTeam.Name   = team.Name;
            newTeam.Leader = team.Leader;
            Team           = newTeam;
        }
コード例 #14
0
        /// <summary>
        /// конструктор
        /// </summary>
        /// <param name="serviceUnitOfWork">общий интерфейс сервиса</param>
        public ScheduleForYearViewModel(IServiceUnitOfWork serviceUnitOfWork, ContentControl content)
        {
            this.serviceUnitOfWork = serviceUnitOfWork;
            m_contentControl       = content;

            Schedules = serviceUnitOfWork.Schedules.GetAll();
            if (Schedules == null)
            {
                Schedules = new ObservableCollection <Schedule>();
            }
        }
コード例 #15
0
        private void DeleteHierarchy(int parent, IServiceUnitOfWork unit)
        {
            var child = unit.Service <ProductGroupMapping>().GetAll(x => x.ParentProductGroupMappingID.HasValue && x.ParentProductGroupMappingID.Value == parent).ToList();

            if (child.Count < 1)
            {
                ((IProductGroupMappingService)unit.Service <ProductGroupMapping>()).Delete(parent);
            }
            else
            {
                child.ForEach(x =>
                {
                    DeleteHierarchy(x.ProductGroupMappingID, unit);
                });
            }
        }
コード例 #16
0
        private static int GetNextRelatedProductIndex(IServiceUnitOfWork unit, RelatedProduct relatedProduct)
        {
            if (relatedProduct.RelatedProductTypeID == 8 || relatedProduct.CreatedBy == 1)
            {
                return(relatedProduct.Index);
            }

            var relatedProducts = unit.Service <RelatedProduct>().GetAll(x => x.ProductID == relatedProduct.ProductID);

            foreach (var product in relatedProducts.OrderByDescending(r => r.Index))
            {
                return(product.Index > 1000 ? product.Index++ : 1001);
            }


            return(relatedProduct.Index);
        }
コード例 #17
0
        public AttachmentViewModel(IServiceUnitOfWork serviceUnitOfWork, Attachment attachment)
        {
            this.serviceUnitOfWork = serviceUnitOfWork;
            oldAttachment          = attachment;

            Attachment newAttachment = new Attachment();

            newAttachment.Name = attachment.Name;
            //newSubstation.SortingOrder = substation.SortingOrder;
            newAttachment.Substation             = attachment.Substation;
            newAttachment.VoltageClass           = attachment.VoltageClass;
            newAttachment.ManagementOrganization = attachment.ManagementOrganization;
            Attachment = newAttachment;

            Substations             = serviceUnitOfWork.Substations.GetAll();
            VoltageClasses          = serviceUnitOfWork.VoltageClasses.GetAll();
            ManagementOrganizations = serviceUnitOfWork.ManagementOrganizations.GetAll();
        }
コード例 #18
0
        public MaintenanceCycleViewModel(IServiceUnitOfWork serviceUnitOfWork, MaintenanceCycleModel maintenanceCycleModel, ActionType actionType)
        {
            this.actionType = actionType;

            this.serviceUnitOfWork  = serviceUnitOfWork;
            oldMaitenanceCycleModel = maintenanceCycleModel;
            MaintenanceTypes        = serviceUnitOfWork.MaintenanceTypes.GetAll();
            MaintenanceTypes.Insert(0, new MaintenanceType());
            MaintenanceCycleModel cycle = new MaintenanceCycleModel();

            cycle.Name     = maintenanceCycleModel.Name;
            cycle.ShowName = maintenanceCycleModel.ShowName;
            for (int i = 0; i < cycle.MaintenanceTypes.Length; i++)
            {
                cycle.MaintenanceTypes[i] = maintenanceCycleModel.MaintenanceTypes[i];
            }
            MaintenanceCycleModel = cycle;
        }
コード例 #19
0
        public RelayDeviceViewModel(IServiceUnitOfWork serviceUnitOfWork, RelayDevice relayDevice, ActionType actionType)
        {
            this.actionType = actionType;

            this.serviceUnitOfWork = serviceUnitOfWork;
            oldRelayDevice         = relayDevice;

            RelayDevice newRelayDevice = new RelayDevice();

            newRelayDevice.Name              = relayDevice.Name;
            newRelayDevice.Attachment        = relayDevice.Attachment;
            newRelayDevice.InputYear         = relayDevice.InputYear;
            newRelayDevice.MaintenancePeriod = relayDevice.MaintenancePeriod;
            newRelayDevice.DeviceType        = relayDevice.DeviceType;
            newRelayDevice.ElementBase       = relayDevice.ElementBase;
            newRelayDevice.Manufacturer      = relayDevice.Manufacturer;
            newRelayDevice.Act = relayDevice.Act;
            newRelayDevice.NormalMaintenanceCycle  = relayDevice.NormalMaintenanceCycle;
            newRelayDevice.ReducedMaintenanceCycle = relayDevice.ReducedMaintenanceCycle;
            RelayDevice = newRelayDevice;

            if (relayDevice.Name != null)
            {
                InputYear                    = relayDevice.InputYear.ToString();
                MaintenancePeriod            = relayDevice.MaintenancePeriod.ToString();
                NormalMaintenanceCycleModel  = serviceUnitOfWork.MaintenanceCycleModels.Get(relayDevice.NormalMaintenanceCycle);
                ReducedMaintenanceCycleModel = serviceUnitOfWork.MaintenanceCycleModels.Get(relayDevice.ReducedMaintenanceCycle);
            }

            Substations            = serviceUnitOfWork.Substations.GetAll();
            DeviceTypes            = serviceUnitOfWork.DeviceTypes.GetAll();
            ElementBases           = serviceUnitOfWork.ElementBases.GetAll();
            Manufacturers          = serviceUnitOfWork.Manufacturers.GetAll();
            Acts                   = serviceUnitOfWork.Acts.GetAll();
            MaintenanceCycleModels = new ObservableCollection <MaintenanceCycleModel>(serviceUnitOfWork.MaintenanceCycleModels.GetAll().Where(x => x.MaintenanceTypes.
                                                                                                                                              Where(y => {
                if (y != null)
                {
                    return(y.Contains("В") || y.Contains("Н"));
                }
                return(false);
            }).Count() != 0));
        }
コード例 #20
0
        public AdditionalWorkViewModel(IServiceUnitOfWork serviceUnitOfWork, AdditionalWork additionalWork,
                                       ActionType actionType)
        {
            this.serviceUnitOfWork = serviceUnitOfWork;
            this.actionType        = actionType;

            oldAdditionalWork = additionalWork;

            AdditionalWork newAdditionalWork = new AdditionalWork();

            this.additionalWork         = newAdditionalWork;
            newAdditionalWork.Name      = additionalWork.Name;
            newAdditionalWork.InputYear = additionalWork.InputYear;
            newAdditionalWork.NormalMaintenanceCycle  = additionalWork.NormalMaintenanceCycle;
            newAdditionalWork.ReducedMaintenanceCycle = additionalWork.ReducedMaintenanceCycle;
            newAdditionalWork.Substation = additionalWork.Substation;
            newAdditionalWork.Devices    = additionalWork.Devices;

            if (actionType == ActionType.Update)
            {
                InputYear      = additionalWork.InputYear.ToString();
                additionalWork = newAdditionalWork;
                NormalMaintenanceCycleModel = serviceUnitOfWork.MaintenanceCycleModels.
                                              Get(additionalWork.NormalMaintenanceCycle);
            }
            else
            {
                RelayDevices      = new ObservableCollection <RelayDevice>();
                AddedRelayDevices = new ObservableCollection <RelayDevice>();
            }

            Substations            = serviceUnitOfWork.Substations.GetAll();
            Substation             = additionalWork.Substation;
            MaintenanceCycleModels = new ObservableCollection <MaintenanceCycleModel>(serviceUnitOfWork.
                                                                                      MaintenanceCycleModels.GetAll().Where(x => x.MaintenanceTypes.Where(y =>
            {
                if (y != null)
                {
                    return(!y.Contains("Н"));
                }
                return(false);
            }).Count() != 0));
        }
コード例 #21
0
        public ObservableCollection <ScheduleRecordModel> GetAll(int year, IServiceUnitOfWork serviceUnitOfWork)
        {
            List <MaintainedEquipment> equipments = new List <MaintainedEquipment>(dataBase.MaintainedEquipments.GetAll()
                                                                                   .Where(x => x.MaintenanceRecords.LastOrDefault(y => y.PlannedMaintenanceDate.Year == year) != null));

            foreach (MaintainedEquipment equipment in equipments)
            {
                m_semaphore.WaitOne();
                if (equipment is Substation)
                {
                    AddScheduleRecordModelForSubstationAsync(equipment, year, serviceUnitOfWork);
                }
                else
                {
                    AddScheduleRecordModelAsync(equipment, year, serviceUnitOfWork);
                }
            }

            return(new ObservableCollection <ScheduleRecordModel>(m_scheduleRecordModel));
        }
コード例 #22
0
        public ProductModelRepository(IServiceUnitOfWork unit, int vendorID)
        {
            _unit     = unit;
            _vendorID = vendorID;
            //check and create setting if not existing
            var vendorSetting = _unit.Service <VendorSetting>().Get(c => c.VendorID == vendorID && c.SettingKey == _settingKey);

            if (vendorSetting == null)
            {
                vendorSetting = new VendorSetting()
                {
                    SettingKey = _settingKey,
                    VendorID   = _vendorID,
                    Value      = string.Empty
                };
                unit.Service <VendorSetting>().Create(vendorSetting);
                unit.Save();
            }

            _vendorSetting = vendorSetting;
        }
コード例 #23
0
        public AdditionalDeviceViewModel(IServiceUnitOfWork serviceUnitOfWork, AdditionalDevice additionalDevice, ActionType actionType)
        {
            this.actionType = actionType;

            this.serviceUnitOfWork = serviceUnitOfWork;
            oldAdditionalDevice    = additionalDevice;

            AdditionalDevice newAdditionalDevice = new AdditionalDevice();

            newAdditionalDevice.Name              = additionalDevice.Name;
            newAdditionalDevice.Attachment        = additionalDevice.Attachment;
            newAdditionalDevice.InputYear         = additionalDevice.InputYear;
            newAdditionalDevice.MaintenancePeriod = additionalDevice.MaintenancePeriod;
            newAdditionalDevice.Act = additionalDevice.Act;
            newAdditionalDevice.NormalMaintenanceCycle  = additionalDevice.NormalMaintenanceCycle;
            newAdditionalDevice.ReducedMaintenanceCycle = additionalDevice.ReducedMaintenanceCycle;
            AdditionalDevice = newAdditionalDevice;

            if (additionalDevice.Name != null)
            {
                InputYear                    = additionalDevice.InputYear.ToString();
                MaintenancePeriod            = additionalDevice.MaintenancePeriod.ToString();
                NormalMaintenanceCycleModel  = serviceUnitOfWork.MaintenanceCycleModels.Get(additionalDevice.NormalMaintenanceCycle);
                ReducedMaintenanceCycleModel = serviceUnitOfWork.MaintenanceCycleModels.Get(additionalDevice.ReducedMaintenanceCycle);
            }

            Substations = serviceUnitOfWork.Substations.GetAll();
            Acts        = serviceUnitOfWork.Acts.GetAll();
            //MaintenanceCycles = MaintenanceCycles = MaintenanceCycles = new ObservableCollection<MaintenanceCycle>(serviceUnitOfWork.MaintenanceCycles.GetAll().Where(x => x.MaintenanceYears.Where(y => (y.MaintenanceType.Name.Contains("В") ||
            //                                                                                                                                                                                             y.MaintenanceType.Name.Contains("Н"))).Count() != 0));
            MaintenanceCycleModels = new ObservableCollection <MaintenanceCycleModel>(serviceUnitOfWork.MaintenanceCycleModels.GetAll().Where(x => x.MaintenanceTypes.
                                                                                                                                              Where(y => {
                if (y != null)
                {
                    return(y.Contains("В") || y.Contains("Н"));
                }
                return(false);
            }).Count() != 0));
        }
コード例 #24
0
        public ScheduleViewModel(IServiceUnitOfWork serviceUnitOfWork, ContentControl control, Schedule schedule)
        {
            this.serviceUnitOfWork = serviceUnitOfWork;
            m_schedule             = schedule;
            m_collection           = new HashSet <ScheduleRecordModel>(serviceUnitOfWork.ScheduleRecordModels.GetAll(schedule.Year, serviceUnitOfWork).OrderBy(x => x.Substation));
            ScheduleRecordModels   = new ObservableCollection <ScheduleRecordModel>(m_collection);
            List <string> list = new List <string>();

            list.Add("");
            list.AddRange(DateTimeFormatInfo.CurrentInfo.MonthNames.Take(12));
            ScheduleView view = new ScheduleView();

            view.DataContext = this;
            control.Content  = view;
            Months           = new ObservableCollection <string>(list);
            isNew            = false;
            Substations      = new List <string>();
            Substations.Add("Подстанции");
            Substations.AddRange(serviceUnitOfWork.Substations.GetAll().Select(p => p.Name));
            SelectedSubstation = Substations[0];
            Teams = new List <string>();
            Teams.Add("Бригады");
            Teams.AddRange(serviceUnitOfWork.Teams.GetAll().Select(p => p.Name));
            SelectedTeam            = Teams[0];
            ManagementOrganizations = new List <string>();
            ManagementOrganizations.Add("Организации управления");
            ManagementOrganizations.AddRange(serviceUnitOfWork.ManagementOrganizations.GetAll().Select(p => p.Name));
            SelectedManagementOrganization = ManagementOrganizations[0];
            Attachments = new List <string>();
            Attachments.Add("Присоединения");
            Attachments.AddRange(serviceUnitOfWork.Attachments.GetAll().Select(p => p.Name));
            SelectedAttachment = Attachments[0];
            ElementBases       = new List <string>();
            ElementBases.Add("Элементные базы");
            ElementBases.AddRange(serviceUnitOfWork.ElementBases.GetAll().Select(p => p.Name));
            SelectedElementBase = ElementBases[0];
        }
コード例 #25
0
 public TeamController(IServiceUnitOfWork serviceUnitOfWork)
 {
     this._serviceUnitOfWork = serviceUnitOfWork;
 }
コード例 #26
0
 public AdditionalWorksViewModel(IServiceUnitOfWork serviceUnitOfWork)
 {
     this.serviceUnitOfWork = serviceUnitOfWork;
     additionalWorks        = serviceUnitOfWork.AdditionalWorks.GetAll();
 }
コード例 #27
0
        public List <DefaultColumnDefinition> GetColumnDefinitions(int userID, string name, IServiceUnitOfWork unit)
        {
            var serializer = new JavaScriptSerializer();

            var state       = unit.Service <UserState>().Get(c => c.UserID == userID && c.EntityName == name);
            var stateObject = state != null
        ? state.SavedState
        : String.Empty;

            var columnWrapper = serializer.Deserialize <ColumnDefinitionWrapper>(stateObject);

            return(columnWrapper != null && columnWrapper.Columns != null
        ? columnWrapper.Columns
        : new List <DefaultColumnDefinition>());
        }
コード例 #28
0
 public PositionsController(IServiceUnitOfWork service)
 {
     _service = service.PositionService;
 }
コード例 #29
0
        private TreeNode GetNodes(TreeNode level, List <string> levels, int currentLevel, IServiceUnitOfWork unit)
        {
            bool node = levels.IndexOf(currentLevel.ToString()) < levels.Count() - 1;

            var mapping          = unit.Service <ProductGroupMapping>().Get(c => c.ProductGroupMappingID == currentLevel);
            var productGroupName = mapping.ProductGroup.ProductGroupLanguages.FirstOrDefault(c => c.LanguageID == Client.User.LanguageID) ?? mapping.ProductGroup.ProductGroupLanguages.FirstOrDefault();

            level.text                  = mapping.CustomProductGroupLabel != "" ? mapping.CustomProductGroupLabel + "(C)" : productGroupName.Name;
            level.leaf                  = !node;
            level.ConnectorID           = mapping.ConnectorID;
            level.ProductGroupMappingID = currentLevel;

            if (node)
            {
                TreeNode tn = new TreeNode();
                level.children = new List <TreeNode>();
                level.children.Add(GetNodes(tn, levels, int.Parse(levels[levels.IndexOf(currentLevel.ToString()) + 1]), unit));
            }

            return(level);
        }
コード例 #30
0
		public RelayDevicesViewModel(IServiceUnitOfWork serviceUnitOfWork)
        {
            this.serviceUnitOfWork = serviceUnitOfWork;
            RelayDevices = serviceUnitOfWork.RelayDevices.GetAll();
        }
コード例 #31
0
        private void CheckForFields(IServiceUnitOfWork unit, WebToPrintBinding wtpb)
        {
            try
            {
                if (wtpb.WebToPrintBindingFields == null)
                {
                    wtpb.WebToPrintBindingFields = new List <WebToPrintBindingField>();
                }
                if (wtpb.WebToPrintBindingFields.Count != 0)
                {
                    unit.Service <WebToPrintBindingField>().Delete(wtpb.WebToPrintBindingFields);
                    wtpb.WebToPrintBindingFields = new List <WebToPrintBindingField>();
                    unit.Save();
                }

                string query = wtpb.QueryText;
                wtpb.Query = "";
                if (query.ToLower().Contains("select") && query.ToLower().Contains("from"))
                {
                    int fromindex = query.ToLower().LastIndexOf("from");
                    int offset    = 7;
                    if (query.ToLower().Contains("distinct"))
                    {
                        offset += 9;
                    }

                    List <string> selects      = new List <string>();
                    string        subString    = query.Substring(offset, fromindex - offset);
                    int           bracketcount = 0;
                    int           lastIndex    = 0;
                    for (int i = 0; i < subString.Length; i++)
                    {
                        if (subString[i] == '(')
                        {
                            bracketcount++;
                        }
                        if (subString[i] == ')')
                        {
                            bracketcount--;
                        }

                        if (subString[i] == ',' && bracketcount == 0)
                        {
                            selects.Add(subString.Substring(lastIndex, i - lastIndex).Trim());
                            lastIndex = i + 1;
                        }
                    }
                    selects.Add(subString.Substring(lastIndex, subString.Length - lastIndex).Trim());

                    string[] selectwords = selects.ToArray();
                    string   newquery    = "select ";
                    if (query.ToLower().Contains("distinct"))
                    {
                        newquery += "distinct ";
                    }


                    for (int i = 0; i < selectwords.Length; i++)
                    {
                        string word    = selectwords[i].Trim();
                        string name    = word;
                        int    asIndex = word.ToLower().LastIndexOf("as");
                        if (asIndex >= 0)
                        {
                            name = word.Substring((asIndex + 3), word.Length - (asIndex + 3));
                        }
                        WebToPrintBindingField wtpbf = new WebToPrintBindingField()
                        {
                            Name = name,
                            WebToPrintBinding = wtpb,
                            Options           = 0,
                            Type = (byte)BindingFieldType.Unknown + 1
                        };
                        unit.Service <WebToPrintBindingField>().Create(wtpbf);
                        unit.Save();
                        if (asIndex >= 0)
                        {
                            newquery += word.Substring(0, asIndex - 1) + " as '" + wtpbf.FieldID + "'";
                        }
                        else
                        {
                            newquery += word + " as '" + wtpbf.FieldID + "'";
                        }
                        if (i < selectwords.Length - 1)
                        {
                            newquery += ", ";
                        }
                    }

                    if (query.ToLower().Contains("where"))
                    {
                        int whereindex = query.ToLower().LastIndexOf("where") + 5;
                        newquery += " " + query.Substring(fromindex, whereindex - 5 - (fromindex));

                        newquery += "where";
                        string[] wherewords = query.Substring(whereindex, query.Length - whereindex).Split('=');
                        for (int i = 0; i < wherewords.Length - 1; i++)
                        {
                            string[] values              = wherewords[i].Trim().Split(' ');
                            string[] values2             = wherewords[i + 1].Trim().Split(' ');
                            WebToPrintBindingField wtpbf = new WebToPrintBindingField()
                            {
                                Name = values2[0], Type = (byte)BindingFieldType.Unknown
                            };
                            wtpb.WebToPrintBindingFields.Add(wtpbf);
                            unit.Save();
                            newquery += " " + values[values.Length - 1] + "=@" + wtpbf.FieldID;
                            if (values2.Length > 1)
                            {
                                newquery += " " + values2[1];
                            }
                        }
                    }
                    else
                    {
                        newquery += " " + query.Substring(fromindex, query.Length - (fromindex));
                    }
                    wtpb.Query = newquery;
                    unit.Save();
                }
                else
                {
                    Exception e = new Exception("The query is invalid");
                    throw e;
                }
            }
            catch (Exception e)
            {
                throw e;
            }
        }