private void datePicker_SelectedDateChanged(object sender, SelectionChangedEventArgs e)
        {
            SerialNumberModel serialN = checkSerialNumber();
            string            strD    = "";

            if (string.IsNullOrEmpty(clientModel.DateServiced))
            {
                strD = DateTime.Parse(datePicker.Text).ToShortDateString();
            }
            else
            {
                strD = DateTime.Parse(clientModel.DateServiced).ToShortDateString();
            }

            string dteNow      = DateTime.Now.ToShortDateString();
            string dteSelected = datePicker.Text;

            if (string.IsNullOrEmpty(strD))
            {
                strD = DateTime.Now.ToShortDateString();
            }

            CODModel codnum = checkCODNumber(dteSelected);

            if (!strD.Equals(dteNow))
            {
                txtCOD.Text          = (Convert.ToInt32(codnum.COD1) + 1).ToString();
                txtSerialNumber.Text = (Convert.ToInt32(serialN.SerialNumber) + 1).ToString();
            }
        }
        private CODModel checkCODNumber(string dte)
        {
            CODModel codMod = new CODModel();

            try
            {
                queryString = "SELECT ID, COD, dateServiced FROM dbspa.tblcod WHERE (dateServiced = ?)";

                parameters = new List <string>();

                DateTime date = DateTime.Parse(dte);
                parameters.Add(date.Year + "/" + date.Month + "/" + date.Day);

                MySqlDataReader reader = conDB.getSelectConnection(queryString, parameters);

                while (reader.Read())
                {
                    codMod.ID1          = reader["ID"].ToString();
                    codMod.COD1         = reader["COD"].ToString();
                    codMod.DateServiced = Convert.ToDateTime(reader["dateServiced"].ToString());
                }
                conDB.closeConnection();
            }
            catch (Exception ex)
            {
                System.Windows.MessageBox.Show(ex.Message);
            }
            return(codMod);
        }
Пример #3
0
        protected void FillComponentSheet(ISheet sheet, CODModel model, Database db)
        {
            BuildRow(sheet, HeadStyle, GetHeadValues());

            sheet.CreateFreezePane(0, 1, 0, 1);

            long line       = 0;
            var  totalLines = model.Renderings.Count;

            var d = new Dictionary <Guid, Item>();

            foreach (var a in model.Renderings)
            {
                d.Add(a.Key, a.Value);
            }
            foreach (var b in model.Sublayouts)
            {
                d.Add(b.Key, b.Value);
            }
            foreach (KeyValuePair <Guid, Item> itm in d)
            {
                line++;

                BuildRow(sheet, GreenStyle, GetTemplateValues($"{itm.Value.Name} ({itm.Value.TemplateName})", "Component"));

                var rpItem = GetItemByFieldId(db, itm.Value, RenderingParameterField);
                var dsItem = GetItemByFieldPath(db, itm.Value, DatasourceTemplateField);
                if (dsItem == null && rpItem == null)
                {
                    BuildRow(sheet, DefaultStyle, GetEmptyValues());
                    continue;
                }

                if (dsItem != null)
                {
                    EnumerateTemplateFields(sheet, db, dsItem, "Datasource");
                }
                if (rpItem != null)
                {
                    EnumerateTemplateFields(sheet, db, rpItem, "Rendering Parameters");
                }

                JobService.SetJobMessage($"Processed component item {line} of {totalLines}");
            }
        }
Пример #4
0
        protected void FillEnumerationSheet(ISheet sheet, CODModel model, Database db)
        {
            BuildRow(sheet, HeadStyle, GetHeadValues());

            sheet.CreateFreezePane(0, 1, 0, 1);

            long line       = 0;
            var  totalLines = model.Enumerations.Count;

            foreach (KeyValuePair <Guid, Item> itm in model.Enumerations)
            {
                line++;

                BuildRow(sheet, GreenStyle, GetTemplateValues(itm.Value.Name, "Enumeration"));

                EnumerateTemplateFields(sheet, db, itm.Value, "");

                JobService.SetJobMessage($"Processed enumeration item {line} of {totalLines}");
            }
        }
Пример #5
0
        protected void FillPageSheet(ISheet sheet, CODModel model, Database db)
        {
            BuildRow(sheet, HeadStyle, GetPageValues());

            sheet.CreateFreezePane(0, 1, 0, 1);

            long line       = 0;
            var  totalLines = model.Pages.Count;

            foreach (KeyValuePair <Guid, Item> itm in model.Pages)
            {
                line++;

                var baseField = (DelimitedField)itm.Value.Fields[FieldIDs.BaseTemplate];
                var baseList  = baseField?.Items.Where(c => !c.Equals("{1930BBEB-7805-471A-A3BE-4858AC7CF696}"))
                                .Select(a => itm.Value.Database.GetItem(a))
                                .Where(b => b != null)
                                .Select(c => c.Name);
                var baseValue = baseList.Any() ? string.Join(", ", baseList) : "";

                var device          = (DeviceItem)itm.Value.Database.GetItem(DeviceId);
                var textInfo        = new CultureInfo("en-US", false).TextInfo;
                var standardValues  = db.Templates[itm.Value.ID].StandardValues;
                var placeholders    = PresentationService.GetPlaceholders(standardValues, DeviceId.ToString());
                var placeholderKeys = new List <string>();
                if (placeholders.Any())
                {
                    placeholderKeys = placeholders.Select(a => textInfo.ToTitleCase(a.Key.Replace("-", " "))).ToList();
                }
                var rendValue = string.Join(", ", placeholderKeys);

                BuildRow(sheet, GreenStyle, GetPageTemplateValues(itm.Value.Name, "Page", baseValue, rendValue));

                EnumerateTemplateFields(sheet, db, itm.Value, "");

                JobService.SetJobMessage($"Processed page item {line} of {totalLines}");
            }
        }
        private void btnSave_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                int serial = 0;

                if (!clientModel.IfEditDetails && !clientModel.IfViewDetails)
                {
                    if (!ifAlreadySaved)
                    {
                        if (checkFields())
                        {
                            //Check user logged if admin or receptionist
                            if (user != null)
                            {
                                SerialNumberModel serialNum = checkSerialNumber();
                                CODModel          codMod    = checkCODNumber(datePicker.Text);
                                int x = Convert.ToInt32(codMod.COD1);
                                serial = Convert.ToInt32(serialNum.SerialNumber);
                                int numSerial = 0;
                                int numCod    = 0;
                                if (user.Type == 1)
                                {
                                    numSerial = Convert.ToInt32(txtSerialNumber.Text);
                                    numCod    = Convert.ToInt32(txtCOD.Text);

                                    if (numSerial > serial)
                                    {
                                        serial = numSerial;
                                    }
                                }
                                else
                                {
                                    serial += 1;
                                }


                                //CHECK SERIAL NUMBER
                                insertSerialNumber((serial), datePicker.Text);

                                //CHECK COD
                                if (x == 0)
                                {
                                    insertCODNumber(numCod);
                                }
                                else
                                {
                                    if (user.Type == 1)
                                    {
                                        if (numCod > x)
                                        {
                                            updateCODNumber(numCod, Convert.ToInt32(codMod.ID1));
                                        }
                                    }
                                    else
                                    {
                                        numCod = x + 1;
                                        updateCODNumber(numCod, Convert.ToInt32(codMod.ID1));
                                    }
                                }

                                //serial = serial + 1;
                                //x = x + 1;
                                if (insertClientRecord(serial.ToString(), numCod.ToString()))
                                {
                                    updateClientView();
                                    System.Windows.MessageBox.Show("Client Record Successfully Saved!");
                                    this.Close();
                                }
                            }
                            else
                            {
                                //original code insertClientRecord((serial + 1), (x + 1))


                                if (insertClientRecord(txtSerialNumber.Text, txtCOD.Text))
                                {
                                    updateClientView();
                                    System.Windows.MessageBox.Show("Client Record Successfully Saved!");
                                    this.Close();
                                }
                            }
                        }
                    }
                    else
                    {
                        System.Windows.MessageBox.Show("Client already exist!");
                        this.Close();
                    }
                }
                else
                {
                    if (checkFieldsForUpdating())
                    {
                        if (user.Type == 1)
                        {
                            insertSerialNumber(Convert.ToInt32(txtSerialNumber.Text), txtDate.Text);
                        }
                        else
                        {
                            SerialNumberModel serialNum = checkSerialNumber();
                            serial  = Convert.ToInt32(serialNum.SerialNumber);
                            serial += 1;
                        }

                        if (updateClientRecord(Convert.ToInt32(clientModel.ID1)))
                        {
                            System.Windows.MessageBox.Show("Record updated successfully!");
                            conDB.writeLogFile("SAVE CLIENT RECORD: UPDATED RECORD ID: " + clientModel.ID1);
                            updateClientView();
                            this.Close();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                System.Windows.MessageBox.Show(ex.Message);
            }
        }
        private void MetroWindow_Loaded(object sender, RoutedEventArgs e)
        {
            cmbLoyaltycards.Visibility = Visibility.Hidden;

            txtDate.Visibility = Visibility.Hidden;
            fillComboBoxServiceMode(cmbServiceMode);
            timeInPicker.Text       = DateTime.Now.ToShortTimeString();
            timeOutPicker.IsEnabled = false;
            if (user.Type > 1)
            {
                txtSerialNumber.IsEnabled = false;
                txtCOD.IsEnabled          = false;
            }
            else
            {
                txtSerialNumber.IsEnabled = true;
                txtCOD.IsEnabled          = true;
                SerialNumberModel serialNum = checkSerialNumber();
                txtSerialNumber.Text = (Convert.ToInt32(serialNum.SerialNumber) + 1).ToString();
                CODModel codNum = checkCODNumber(DateTime.Now.ToShortDateString());
                txtCOD.Text = (Convert.ToInt32(codNum.COD1) + 1).ToString();
            }

            if (clientModel != null)
            {
                //fillComboBoxServiceMode(cmbServiceMode);
                fillLoyaltyCards();

                if (clientModel.IfViewDetails)
                {
                    datePicker.Visibility      = Visibility.Hidden;
                    lblDate.Visibility         = Visibility.Visible;
                    txtDate.Visibility         = Visibility.Visible;
                    btnDeleteProduct.IsEnabled = false;
                    InitializeDetails();
                    cmbServiceMode.IsEnabled  = false;
                    txtSerialNumber.IsEnabled = false;
                    txtCOD.IsEnabled          = false;
                    timeInPicker.IsEnabled    = false;
                    timeOutPicker.IsEnabled   = false;
                    if (string.IsNullOrEmpty(clientModel.TimeOut) || string.IsNullOrWhiteSpace(clientModel.TimeOut))
                    {
                        timeOutPicker.Visibility = Visibility.Hidden;
                    }
                    else
                    {
                        timeOutPicker.Text = clientModel.TimeOut;
                    }

                    if (Convert.ToInt32(clientModel.LoyaltyID) > 0)
                    {
                        cmbLoyaltycards.Visibility = Visibility.Hidden;
                        chkAvailLoyalty.Visibility = Visibility.Hidden;
                    }

                    txtFirstName.IsEnabled   = false;
                    txtLastName.IsEnabled    = false;
                    txtAddress.IsEnabled     = false;
                    txtPhoneNumber.IsEnabled = false;
                    txtDate.IsEnabled        = false;
                    btnSave.IsEnabled        = false;
                    btnDelete.IsEnabled      = false;
                    btnAdd.IsEnabled         = false;
                    btnEdit.IsEnabled        = false;
                    btnAddProduct.IsEnabled  = false;
                }
                else if (clientModel.IfEditDetails)
                {
                    datePicker.Visibility = Visibility.Visible;
                    lblDate.Visibility    = Visibility.Visible;
                    txtDate.Visibility    = Visibility.Hidden;
                    txtDate.Visibility    = Visibility.Hidden;

                    InitializeDetails();

                    txtFirstName.IsEnabled   = true;
                    txtLastName.IsEnabled    = true;
                    txtAddress.IsEnabled     = true;
                    txtPhoneNumber.IsEnabled = true;
                    timeOutPicker.IsEnabled  = true;

                    if (Convert.ToInt32(clientModel.LoyaltyID) > 0)
                    {
                        cmbLoyaltycards.Visibility = Visibility.Hidden;
                        chkAvailLoyalty.Visibility = Visibility.Hidden;
                    }

                    if (string.IsNullOrEmpty(clientModel.TimeOut) || string.IsNullOrWhiteSpace(clientModel.TimeOut))
                    {
                        //Initialize Time Out picker
                        //timeOutPicker.Format = DateTimePickerFormat.Custom;
                        //timeOutPicker.CustomFormat = "hh:mm tt"; // Only use hours and minutes
                        //timeOutPicker.ShowUpDown = true;
                    }
                    else
                    {
                        timeOutPicker.Text = clientModel.TimeOut;
                    }
                    btnSave.IsEnabled   = true;
                    btnDelete.IsEnabled = true;
                    btnAdd.IsEnabled    = true;
                }
            }
        }
Пример #8
0
        protected void AddSourceEnumTemplates(CODModel model, Item fieldItem)
        {
            var source = fieldItem.Fields["Source"].Value;

            // query:fast://*[@@templateid='{8288D4EA-6576-486F-AAEC-4680329A2D5C}' and @@key!='__standard values']
            if (source.ToLower().Contains("query"))
            {
                var queryItems = fieldItem.Database.SelectItems(source.Replace("query:", "")).ToList();
                foreach (var i in queryItems)
                {
                    if (!i.Paths.FullPath.StartsWith("/sitecore/content/"))
                    {
                        continue;
                    }

                    if (model.Enumerations.ContainsKey(i.TemplateID.Guid))
                    {
                        continue;
                    }

                    model.Enumerations.Add(i.TemplateID.Guid, i);
                }
            }

            // databasename=legacymaster&datasource=/sitecore/system/Languages
            // Datasource=/sitecore/content/home/Products/&IncludeTemplatesForSelection=Product Category
            else if (source.ToLower().Contains("datasource"))
            {
                var querystring = HttpUtility.ParseQueryString(source);
                var dictionary  = querystring.Keys.Cast <string>().ToDictionary(k => k.ToLower(), v => querystring[v]);
                if (dictionary.ContainsKey("includetemplatesforselection"))
                {
                    var tempNames = dictionary["includetemplatesforselection"].Split(new string[] { "|" }, StringSplitOptions.RemoveEmptyEntries);
                    foreach (var name in tempNames)
                    {
                        var temp = fieldItem.Database.Templates[name];
                        if (temp != null && !model.Enumerations.ContainsKey(temp.ID.Guid))
                        {
                            model.Enumerations.Add(temp.ID.Guid, temp);
                        }
                    }
                }
                else if (dictionary.ContainsKey("datasource"))
                {
                    var path = dictionary["datasource"];
                    if (!path.StartsWith("/sitecore/content/"))
                    {
                        return;
                    }

                    var folder = fieldItem.Database.GetItem(path);
                    if (folder == null || !folder.HasChildren)
                    {
                        return;
                    }

                    var childrenIds = folder.GetChildren().Select(b => b.TemplateID.Guid).Distinct();
                    foreach (var c in childrenIds)
                    {
                        if (model.Enumerations.ContainsKey(c))
                        {
                            continue;
                        }

                        var tempId   = new ID(c);
                        var tempItem = fieldItem.Database.GetItem(tempId);
                        model.Enumerations.Add(c, tempItem);
                    }
                }
            }

            // /sitecore/system/Settings/Rules/Segment Builder
            // {C0CAF698-8A42-4B66-9EAF-7D442B46F722}
            else
            {
                var folder = fieldItem.Database.GetItem(source);
                if (folder == null || !folder.Paths.FullPath.StartsWith("/sitecore/content/"))
                {
                    return;
                }

                if (!folder.HasChildren)
                {
                    return;
                }

                var childrenIds = folder.GetChildren().Select(b => b.TemplateID.Guid).Distinct();
                foreach (var c in childrenIds)
                {
                    if (model.Enumerations.ContainsKey(c))
                    {
                        continue;
                    }

                    var tempId   = new ID(c);
                    var tempItem = fieldItem.Database.GetItem(tempId);
                    model.Enumerations.Add(c, tempItem);
                }
            }
        }
Пример #9
0
        public CODModel BuildModel(Database db)
        {
            var model = new CODModel();

            var layoutItems = db.SelectItems("/sitecore/layout/Layouts//*[@@templatename='Layout']");
            var line        = 1;
            var totalLines  = layoutItems.Length;

            foreach (Item i in layoutItems)
            {
                model.Layouts.Add(i.ID.Guid, i);

                JobService.SetJobMessage($"Processed layout item {line} of {totalLines}");
                line++;
            }

            var renderingItems = db.SelectItems("/sitecore/layout/Renderings//*[@@templatename='View rendering' or @@templatename='Controller rendering']");

            line       = 1;
            totalLines = renderingItems.Length;
            foreach (Item i in renderingItems)
            {
                if (i.Name.ToLower().Contains("container"))
                {
                    model.Containers.Add(i.ID.Guid, i);
                }
                else
                {
                    model.Renderings.Add(i.ID.Guid, i);
                }

                JobService.SetJobMessage($"Processed rendering item {line} of {totalLines}");
                line++;
            }

            var sublayoutItems = db.SelectItems("/sitecore/templates//*[@@templatename='Sublayout']");

            line       = 1;
            totalLines = sublayoutItems.Length;
            foreach (Item i in layoutItems)
            {
                if (i.Name.ToLower().Contains("container"))
                {
                    model.Containers.Add(i.ID.Guid, i);
                }
                else
                {
                    model.Sublayouts.Add(i.ID.Guid, i);
                }


                JobService.SetJobMessage($"Processed sublayout item {line} of {totalLines}");
                line++;
            }

            var templateItems = db.SelectItems("/sitecore/templates//*[@@templatename='Template']");

            line       = 1;
            totalLines = templateItems.Length;
            foreach (Item itm in templateItems)
            {
                JobService.SetJobMessage($"Processed page/enum item {line} of {totalLines}");
                line++;

                var temp = db.Templates[itm.ID];

                if (temp.StandardValues != null && HasLayout(temp.StandardValues))
                {
                    model.Pages.Add(itm.ID.Guid, itm);
                    continue;
                }

                var templateFields = itm.Axes.GetDescendants().Where(a
                                                                     => a.TemplateName.Equals("Template field") &&
                                                                     EnumFieldTypes.Contains(a.Fields["Type"].Value) &&
                                                                     !string.IsNullOrWhiteSpace(a.Fields["Source"].Value));
                foreach (var f in templateFields)
                {
                    AddSourceEnumTemplates(model, f);
                }
            }

            line = 1;
            foreach (Item itm in templateItems)
            {
                JobService.SetJobMessage($"Processed base template item {line} of {totalLines}");
                line++;

                var isNotDatasource      = !model.Datasources.ContainsKey(itm.ID.Guid);
                var isNotRenderingParam  = !model.RenderingParameters.ContainsKey(itm.ID.Guid);
                var isNotEnumeration     = !model.Enumerations.ContainsKey(itm.ID.Guid);
                var itemLinks            = Globals.LinkDatabase.GetReferrers(itm);
                var hasLinks             = itemLinks.Length > 0;
                var allLinksAreTemplates = itemLinks.All(a => a?.GetSourceItem()?.Paths.FullPath.StartsWith("/sitecore/templates") ?? false);
                if (isNotDatasource && isNotRenderingParam && isNotEnumeration &&
                    hasLinks && allLinksAreTemplates)
                {
                    model.BaseTemplates.Add(itm.ID.Guid, itm);
                    continue;
                }
            }

            return(model);
        }