public void DeleteSheetData(string RegistrationKey,List<long> SheetsForDeletion) { long DentalOfficeID=util.GetDentalOfficeID(RegistrationKey); try { if(DentalOfficeID==0) { return; } ODWebServiceEntities db=new ODWebServiceEntities(); for(int i=0;i<SheetsForDeletion.Count();i++) { long SheetID=SheetsForDeletion.ElementAt(i);// LINQ throws an error if this is directly put into the select expression // first delete all sheet field then delete the sheet so that a foreign key error is not thrown var delSheetField=from wsf in db.webforms_sheetfield where wsf.webforms_sheet.SheetID==SheetID select wsf; for(int j=0;j<delSheetField.Count();j++) { // the ElementAt operator only works with lists. Hence ToList() db.DeleteObject(delSheetField.ToList().ElementAt(j)); } var delSheet=from ws in db.webforms_sheet where ws.SheetID==SheetID select ws; db.DeleteObject(delSheet.First()); Logger.Information("deleted SheetID="+SheetID+" DentalOfficeID="+DentalOfficeID); } db.SaveChanges(); Logger.Information("In DeleteSheetData IpAddress="+HttpContext.Current.Request.UserHostAddress+" DentalOfficeID="+DentalOfficeID); } catch(Exception ex) { Logger.LogError("IpAddress="+HttpContext.Current.Request.UserHostAddress+" DentalOfficeID="+DentalOfficeID,ex); } }
public bool SetPreferencesV2(string RegistrationKey,webforms_preference prefObj) { long DentalOfficeID=util.GetDentalOfficeID(RegistrationKey); try { ODWebServiceEntities db=new ODWebServiceEntities(); if(DentalOfficeID==0) { } var wspObj=db.webforms_preference.Where(wsp => wsp.DentalOfficeID==DentalOfficeID); //update preference if(wspObj.Count()>0) { wspObj.First().ColorBorder=prefObj.ColorBorder; wspObj.First().CultureName=prefObj.CultureName; } // if there is no entry for that dental office make a new entry. if(wspObj.Count()==0) { prefObj.DentalOfficeID=DentalOfficeID; db.AddTowebforms_preference(prefObj); } db.SaveChanges(); Logger.Information("Preferences saved IpAddress="+HttpContext.Current.Request.UserHostAddress+" DentalOfficeID="+DentalOfficeID); } catch(Exception ex) { Logger.LogError("IpAddress="+HttpContext.Current.Request.UserHostAddress+" DentalOfficeID="+DentalOfficeID,ex); return false; } return true; }
public void ProcessRequest(HttpContext context) { try { if(context.Request["WebSheetFieldDefID"]!=null) { Int64.TryParse(context.Request["WebSheetFieldDefID"].ToString().Trim(),out WebSheetFieldDefID); } /*png images are used because the background of rectangles/lines can be set to transparent. For gif images the process of making the background transparent is convoluted*/ context.Response.ContentType="image/png"; ODWebServiceEntities db=new ODWebServiceEntities(); var sfdObj=db.webforms_sheetfielddef.Where(sfd=>sfd.WebSheetFieldDefID==WebSheetFieldDefID).First(); SheetFieldType FieldType=(SheetFieldType)sfdObj.FieldType; Bitmap bmp=null; Graphics g=null; Pen p=new Pen(Color.Black,2.0f);//1.0f does not show, this is a bug in the Drawing namespace. if(FieldType==SheetFieldType.Rectangle || FieldType==SheetFieldType.Line) { int bmpWidth=sfdObj.Width; int bmpHeight=sfdObj.Height; if(FieldType==SheetFieldType.Line) { if(bmpWidth==0 && bmpHeight!=0) { bmpWidth=4;//Increases the width of the "canvas" that the line will be drawn on. p.Width+=p.Width;//Double the width of the pen so that it looks like the same thickness of diagonal lines. Half the line will be drawn on the image, half off. } if(bmpWidth!=0 && bmpHeight==0) { bmpHeight=4;//Increases the height of the "canvas" that the line will be drawn on. p.Width+=p.Width;//Double the width of the pen so that it looks like the same thickness of diagonal lines. Half the line will be drawn on the image, half off. } } bmp=new Bitmap(bmpWidth,bmpHeight); g=Graphics.FromImage(bmp); //g.Clear(Color.Transparent); } if(FieldType==SheetFieldType.Rectangle) { g.DrawRectangle(p,0,0,sfdObj.Width,sfdObj.Height); } if(FieldType==SheetFieldType.Line) { g.DrawLine(p,0,0,sfdObj.Width,sfdObj.Height); } if((SheetFieldType)sfdObj.FieldType==SheetFieldType.Image) { string ImageData=sfdObj.ImageData; bmp=PIn.Bitmap(ImageData); } /* These 3 lines are used in lue of the shorter "bmp.Save(context.Response.OutputStream,ImageFormat.Png);" because it does not work with png images.*/ MemoryStream MemStream=new MemoryStream(); bmp.Save(MemStream,System.Drawing.Imaging.ImageFormat.Png); MemStream.WriteTo(context.Response.OutputStream); if(FieldType==SheetFieldType.Rectangle || FieldType==SheetFieldType.Line) { g.Dispose(); } bmp.Dispose(); } catch(Exception ex) { Logger.LogError("WebSheetFieldDefID="+WebSheetFieldDefID,ex); } }
public void DeleteSheetDef(string RegistrationKey,long WebSheetDefID) { long DentalOfficeID=util.GetDentalOfficeID(RegistrationKey); try { if(DentalOfficeID==0) { return; } ODWebServiceEntities db=new ODWebServiceEntities(); webforms_sheetdef SheetDefObj=null; var SheetDefResult=db.webforms_sheetdef.Where(sd=>sd.WebSheetDefID==WebSheetDefID); if(SheetDefResult.Count()>0) { SheetDefObj=SheetDefResult.First(); //load and delete existing child objects i.e sheetfielddefs objects SheetDefObj.webforms_sheetfielddef.Load(); var SheetFieldDefResult=SheetDefObj.webforms_sheetfielddef; while(SheetFieldDefResult.Count()>0) { db.DeleteObject(SheetFieldDefResult.First());//Delete SheetFieldDefObj } db.DeleteObject(SheetDefResult.First());//Delete SheetDefObj Logger.Information("deleted WebSheetDefID="+WebSheetDefID+" DentalOfficeID="+DentalOfficeID); } db.SaveChanges(); Logger.Information("In DeleteSheetDef IpAddress="+HttpContext.Current.Request.UserHostAddress+" DentalOfficeID="+DentalOfficeID); } catch(Exception ex) { Logger.LogError("IpAddress="+HttpContext.Current.Request.UserHostAddress+" DentalOfficeID="+DentalOfficeID,ex); } }
public void UpLoadSheetDef(string RegistrationKey,SheetDef sheetDef) { ODWebServiceEntities db=new ODWebServiceEntities(); long DentalOfficeID=util.GetDentalOfficeID(RegistrationKey); try{ if(DentalOfficeID==0) { return; } var PreferenceResult=db.webforms_preference.Where(pref=>pref.DentalOfficeID==DentalOfficeID); webforms_sheetdef SheetDefObj=null; SheetDefObj=new webforms_sheetdef(); PreferenceResult.First().webforms_sheetdef.Add(SheetDefObj); FillSheetDef(sheetDef,SheetDefObj); FillFieldSheetDef(sheetDef,SheetDefObj); db.SaveChanges(); } catch(Exception ex) { Logger.LogError("IpAddress="+HttpContext.Current.Request.UserHostAddress+" DentalOfficeID="+DentalOfficeID,ex); return ; } }
public List<SheetAndSheetField> GetSheets(string RegistrationKey) { List<SheetAndSheetField> sAndsfList=new List<SheetAndSheetField>(); long DentalOfficeID=util.GetDentalOfficeID(RegistrationKey); try { if(DentalOfficeID==0) { return sAndsfList; } ODWebServiceEntities db=new ODWebServiceEntities(); var wsRes=from wsf in db.webforms_sheet where wsf.webforms_preference.DentalOfficeID==DentalOfficeID select wsf; for(int i=0;i<wsRes.Count();i++) { var wsobj=wsRes.ToList()[i]; wsobj.webforms_sheetfield.Load(); var sheetfieldList=wsobj.webforms_sheetfield; SheetAndSheetField sAnds=new SheetAndSheetField(wsobj,sheetfieldList.ToList()); sAndsfList.Add(sAnds); } Logger.Information("In GetSheetData IpAddress="+HttpContext.Current.Request.UserHostAddress+" DentalOfficeID="+DentalOfficeID+" Sheets sent to Client="+wsRes.Count()); return sAndsfList; } catch(Exception ex) { Logger.LogError("IpAddress="+HttpContext.Current.Request.UserHostAddress+" DentalOfficeID="+DentalOfficeID,ex); return sAndsfList; } }
public webforms_preference GetPreferences(string RegistrationKey) { Logger.Information("In GetPreferences IpAddress="+HttpContext.Current.Request.UserHostAddress+" RegistrationKey="+RegistrationKey); ODWebServiceEntities db=new ODWebServiceEntities(); webforms_preference wspObj=null; int DefaultColorBorder=-12550016; long DentalOfficeID=util.GetDentalOfficeID(RegistrationKey); try { if(DentalOfficeID==0) { return wspObj; } var wspRes=db.webforms_preference.Where(wsp=>wsp.DentalOfficeID==DentalOfficeID); if (wspRes.Count()>0){ wspObj=wspRes.First(); } // if there is no entry for that dental office make a new entry. if (wspRes.Count()==0){ wspObj=new webforms_preference(); wspObj.DentalOfficeID=DentalOfficeID; wspObj.ColorBorder=DefaultColorBorder; wspObj.CultureName="";//empty string because null is not allowed SetPreferencesV2(RegistrationKey,wspObj); Logger.Information("new entry IpAddress="+HttpContext.Current.Request.UserHostAddress+" DentalOfficeID="+DentalOfficeID); } Logger.Information("In GetPreferences IpAddress="+HttpContext.Current.Request.UserHostAddress+" DentalOfficeID="+DentalOfficeID); } catch(Exception ex) { Logger.LogError("IpAddress="+HttpContext.Current.Request.UserHostAddress+" DentalOfficeID="+DentalOfficeID,ex); return wspObj; } return wspObj; }
public List<webforms_sheetdef> DownloadSheetDefs(string RegistrationKey) { List<webforms_sheetdef> sheetDefList=null; try { long DentalOfficeID=util.GetDentalOfficeID(RegistrationKey); if(DentalOfficeID==0) { return sheetDefList; } ODWebServiceEntities db=new ODWebServiceEntities(); var SheetDefResult=db.webforms_sheetdef.Where(sheetdef=>sheetdef.webforms_preference.DentalOfficeID==DentalOfficeID); sheetDefList=SheetDefResult.ToList(); } catch(Exception ex) { Logger.Information(ex.Message.ToString()); return sheetDefList; } return sheetDefList; }
private void GeneratePage(long DentalOfficeID,long WebSheetDefID) { try { int FormXOffset=37; int FormYOffset=26; int ImageXOffset=0; int ImageYOffset=0; int ImageZIndex=1; int DrawingZIndex=2; int ElementZIndex=3; int SubmitButtonWidth=70; int SubmitButtonYoffset=10; int RadioButtonXOffset=-4; int RadioButtonYOffset=-5; int RadioButtonXOffsetIE=0; int RadioButtonXOffsetFirefox=-2; float CheckBoxXOffset=-4.0f; float CheckBoxYOffset=-4.0f; int SignatureFontSize=16; String SignatureFont="sans-serif"; float heightfactor=1.2f; System.Web.HttpBrowserCapabilities browser=Request.Browser; if(browser.Browser=="Firefox") { RadioButtonXOffset+=RadioButtonXOffsetFirefox; } if(browser.Browser=="IE") { RadioButtonXOffset+=RadioButtonXOffsetIE; } ODWebServiceEntities db=new ODWebServiceEntities(); int ColorBorder=db.webforms_preference.Where(pref=>pref.DentalOfficeID==DentalOfficeID).First().ColorBorder; bodytag.Attributes.Add("bgcolor",ColorTranslator.ToHtml(Color.FromArgb(ColorBorder))); var SheetDefObj=db.webforms_sheetdef.Where(sd=>sd.WebSheetDefID==WebSheetDefID && sd.webforms_preference.DentalOfficeID==DentalOfficeID).First(); int SheetDefWidth=SheetDefObj.Width; int SheetDefHeight=SheetDefObj.Height; bool SheetDefIsLandscape=SheetDefObj.IsLandscape==(sbyte)1?true:false; if(SheetDefIsLandscape) { SheetDefWidth=SheetDefObj.Height; SheetDefHeight=SheetDefObj.Width; } form1.Style["position"]="absolute"; form1.Style["top"]=FormXOffset+"px"; form1.Style["left"]=FormYOffset+"px"; form1.Style["width"]=SheetDefWidth+"px"; form1.Style["height"]=SheetDefHeight+"px"; form1.Style["background-color"]="white"; var SheetFieldDefList=(db.webforms_sheetfielddef.Where(sfd=>sfd.webforms_sheetdef.WebSheetDefID==WebSheetDefID && sfd.webforms_sheetdef.webforms_preference.DentalOfficeID==DentalOfficeID)).ToList(); for(int j=0;j<SheetFieldDefList.Count();j++) { String FieldName=SheetFieldDefList.ElementAt(j).FieldName; String FieldValue=SheetFieldDefList.ElementAt(j).FieldValue; SheetFieldType FieldType=(SheetFieldType)SheetFieldDefList.ElementAt(j).FieldType; int XPos=SheetFieldDefList.ElementAt(j).XPos; int YPos=SheetFieldDefList.ElementAt(j).YPos; int width=SheetFieldDefList.ElementAt(j).Width; int height=SheetFieldDefList.ElementAt(j).Height; float fontsize=SheetFieldDefList.ElementAt(j).FontSize; String fontname=SheetFieldDefList.ElementAt(j).FontName; //bool fontIsBold=SheetFieldDefList.ElementAt(j).FontIsBold==(sbyte)1?true:false; bool fontIsBold; if(SheetFieldDefList.ElementAt(j).FontIsBold==(sbyte)1) { fontIsBold=true; } else { fontIsBold=false; } short TabOrder=(short)SheetFieldDefList.ElementAt(j).TabOrder; if(TabOrder!=0) { doTabOrder=false; } long WebSheetFieldDefID=SheetFieldDefList.ElementAt(j).WebSheetFieldDefID; WebControl wc=null; // WebControl is the parent class of all controls if(FieldType==SheetFieldType.InputField) { TextBox tb=new TextBox(); int rowcount=(int)Math.Floor((double)height/fontsize); if (rowcount>1){ tb.TextMode=TextBoxMode.MultiLine; tb.Rows=rowcount; } tb.Text=FieldValue; wc=tb; } if(FieldType==SheetFieldType.CheckBox) { wc=AddCheckBox(SheetFieldDefList.ElementAt(j)); } if(FieldType==SheetFieldType.StaticText) { Label lb=new Label(); if(FieldValue.Contains("[dateToday]")) { dateTodayList.Add(WebSheetFieldDefID);// the replacing is done at the client side using javascript via a hidden variable. } lb.Text=FieldValue.Replace(Environment.NewLine,"<br />").Replace("\n","<br />"); //it appears that the text contains only "\n" as the newline character and not Environment.NewLine (i.e "\n\r") as the line break, so the code takes into account both cases. wc=lb; } if(FieldType==SheetFieldType.Image||FieldType==SheetFieldType.Rectangle||FieldType==SheetFieldType.Line) { System.Web.UI.WebControls.Image img=new System.Web.UI.WebControls.Image(); img.ImageUrl=("~/Handler1.ashx?WebSheetFieldDefID="+WebSheetFieldDefID); wc=img; if(width==0 && height==0) { wc=null;//Image won't be visible anyway so don't waste time trying to draw it. } else if((FieldType==SheetFieldType.Image || FieldType==SheetFieldType.Rectangle) && (width==0 || height==0)) { wc=null;//Image with a width OR a height of 0 will cause an error. Also, rectangles are stopped from having widths and heights of 0 within OD. } else if(FieldType==SheetFieldType.Line) { //Horizontal and vertical lines may have a height or a width of zero. To show up on a web page, the image that the line is drawn on needs to have some sort of a width or height. if(width==0) { width+=4;//Increases the width of the "canvas" that the image of the line will be drawn on. Handler1.ashx.cs is where the actual line image itself is created. } if(height==0) { height+=4;//Increases the height of the "canvas" that the image of the line will be drawn on. Handler1.ashx.cs is where the actual line image itself is created. } } } if(FieldType==SheetFieldType.SigBox) { Panel pa=new Panel(); pa.BorderStyle=BorderStyle.Solid; pa.BorderWidth=Unit.Pixel(1); pa.HorizontalAlign=HorizontalAlign.Center; Label lb=new Label(); lb.Style["font-family"]=SignatureFont; lb.Style["font-size"]=SignatureFontSize+"px"; lb.Style["position"]="relative"; lb.Style["top"]=(height-SignatureFontSize)/2 +"px"; lb.Text="Signature will be recorded later"; pa.Controls.Add(lb); wc=pa; } if(wc!=null) { wc.ID=""+WebSheetFieldDefID; wc.Style["position"]="absolute"; wc.Style["width"]=width+"px"; wc.Style["height"]=height+"px"; wc.Style["top"]=YPos+"px"; wc.Style["left"]=XPos+"px"; wc.Style["z-index"]=""+ElementZIndex; wc.TabIndex=TabOrder; if(FieldType==SheetFieldType.Image) { wc.Style["top"]=YPos+ImageYOffset+"px"; wc.Style["left"]=XPos+ImageXOffset+"px"; wc.Style["z-index"]=""+ImageZIndex; } if(FieldType==SheetFieldType.Rectangle||FieldType==SheetFieldType.Line) { wc.Style["z-index"]=""+DrawingZIndex; } if(FieldType==SheetFieldType.InputField) { //textboxes wc.Style["font-family"]=fontname; wc.Style["font-size"]=fontsize+"pt"; wc.Style["height"]=height/heightfactor+"px"; if(fontIsBold) { wc.Font.Bold=true; } wc.BorderWidth=Unit.Pixel(0); wc.BackColor=Color.LightYellow; AddTextBoxValidator(SheetFieldDefList.ElementAt(j)); WControl wcobj=new WControl(XPos,YPos,wc); listwc.Add(wcobj); } if(wc.GetType()==typeof(RadioButtonList)) { wc.Style["position"]="static"; WControl wcobj=new WControl(XPos,YPos,wc); listwc.Add(wcobj); } if(wc.GetType()==typeof(CheckBox)) { wc.Style["top"]=YPos+CheckBoxYOffset+"px"; wc.Style["left"]=XPos+CheckBoxXOffset+"px"; AddRequiredChkBoxValidator(SheetFieldDefList.ElementAt(j),CheckBoxXOffset,CheckBoxYOffset); WControl wcobj=new WControl(XPos,YPos,wc); listwc.Add(wcobj); } if(FieldType==SheetFieldType.StaticText) { wc.Style["font-family"]=fontname; wc.Style["font-size"]=fontsize+"pt"; if(fontIsBold) { wc.Font.Bold=true; } } Panel1.Controls.Add(wc); } }//for loop end here AdjustErrorMessageForChkBoxes(); CreateChkBoxValidatorsHiddenFields(); CreateHiddenFieldForDateToday(); if(doTabOrder) { AssignTabOrder(); } //position the submit button at the end of the page. Button1.Style["position"]="absolute"; Button1.Style["left"]=SheetDefWidth/2-(SubmitButtonWidth/2)+"px"; Button1.Style["top"]=SheetDefHeight+SubmitButtonYoffset+"px"; Button1.Style["z-index"]=""+ElementZIndex; Button1.Width=Unit.Pixel(SubmitButtonWidth); Panel3.Style["position"]="absolute"; Panel3.Style["top"]=FormXOffset+SheetDefHeight+SubmitButtonYoffset+"px"; } catch(ApplicationException ex) { Logger.LogError("IpAddress="+HttpContext.Current.Request.UserHostAddress+" DentalOfficeID="+DentalOfficeID,ex); DisplayMessage("Error: Your form is not available. Please contact your Dental Office"); } }
private void SaveFieldValuesInDB(long DentalOfficeID,long WebSheetDefID) { try { Logger.Information("In SaveFieldValuesInDB"+" IpAddress="+HttpContext.Current.Request.UserHostAddress+" DentalOfficeID="+DentalOfficeID); ODWebServiceEntities db=new ODWebServiceEntities(); var SheetDefObj=db.webforms_sheetdef.Where(sd=>sd.WebSheetDefID==WebSheetDefID && sd.webforms_preference.DentalOfficeID==DentalOfficeID).First(); webforms_sheet NewSheetObj=new webforms_sheet(); NewSheetObj.DateTimeSheet=DateTime.Now; NewSheetObj.Height=SheetDefObj.Height; NewSheetObj.Width=SheetDefObj.Width; NewSheetObj.FontName=SheetDefObj.FontName; NewSheetObj.FontSize=SheetDefObj.FontSize; NewSheetObj.SheetType=SheetDefObj.SheetType; NewSheetObj.Description=SheetDefObj.Description; NewSheetObj.IsLandscape=SheetDefObj.IsLandscape; SheetDefObj.webforms_sheetfielddef.Load(); var SheetFieldDefResult=SheetDefObj.webforms_sheetfielddef; //copy sheetfielddef values to sheetfield.The FieldValue, if any is overwritten from the hash table. for(int i=0; i<SheetFieldDefResult.Count();i++) { webforms_sheetfield NewSheetfieldObj=new webforms_sheetfield(); var SheetFieldDefObj=SheetFieldDefResult.ElementAt(i); NewSheetfieldObj.FieldName=SheetFieldDefObj.FieldName; NewSheetfieldObj.FieldType=SheetFieldDefObj.FieldType; NewSheetfieldObj.FontIsBold=SheetFieldDefObj.FontIsBold; NewSheetfieldObj.FontName=SheetFieldDefObj.FontName; NewSheetfieldObj.FontSize=SheetFieldDefObj.FontSize; NewSheetfieldObj.Height=SheetFieldDefObj.Height; NewSheetfieldObj.Width=SheetFieldDefObj.Width; NewSheetfieldObj.XPos=SheetFieldDefObj.XPos; NewSheetfieldObj.YPos=SheetFieldDefObj.YPos; NewSheetfieldObj.IsRequired=SheetFieldDefObj.IsRequired; NewSheetfieldObj.RadioButtonGroup=SheetFieldDefObj.RadioButtonGroup; NewSheetfieldObj.RadioButtonValue=SheetFieldDefObj.RadioButtonValue; NewSheetfieldObj.GrowthBehavior=SheetFieldDefObj.GrowthBehavior; NewSheetfieldObj.TabOrder=SheetFieldDefObj.TabOrder; NewSheetfieldObj.ReportableName=SheetFieldDefObj.ReportableName; NewSheetfieldObj.FieldValue=SheetFieldDefObj.FieldValue; long WebSheetFieldDefID=SheetFieldDefObj.WebSheetFieldDefID; if(FormValuesHashTable.ContainsKey(WebSheetFieldDefID+"")) { NewSheetfieldObj.FieldValue=FormValuesHashTable[WebSheetFieldDefID+""].ToString(); } #region saving dates in right formats string FieldValue=NewSheetfieldObj.FieldValue; string FieldName=NewSheetfieldObj.FieldName; string CultureName=db.webforms_preference.Where(pref=>pref.DentalOfficeID==DentalOfficeID).First().CultureName;// culture of the opendental installation if(String.IsNullOrEmpty(CultureName)) { CultureName="en-US"; } if(FieldValue.Contains("[dateToday]")) { FieldValue=FieldValue.Replace("[dateToday]",ExtractBrowserDate().ToString("d",new CultureInfo(CultureName,false))); Logger.Information("FieldName="+FieldName+" FieldValue="+FieldValue); NewSheetfieldObj.FieldValue=FieldValue; } if(FieldName.ToLower()=="birthdate" || FieldName.ToLower()=="bdate") { Logger.Information("FieldName="+FieldName+" FieldValue="+FieldValue); DateTime birthdate=DateTime.Parse(FieldValue,System.Threading.Thread.CurrentThread.CurrentCulture);//use the browsers culture to get correct date. FieldValue= birthdate.ToString("d",new CultureInfo(CultureName,false));//now convert the birthdate into a string using the culture of the corresponding opendental installation. NewSheetfieldObj.FieldValue=FieldValue; } #endregion NewSheetObj.webforms_sheetfield.Add(NewSheetfieldObj); } var PrefObj=db.webforms_preference.Where(wp=>wp.DentalOfficeID==DentalOfficeID); if(PrefObj.Count()>0) { PrefObj.First().webforms_sheet.Add(NewSheetObj); db.SaveChanges(); DisplayMessage("Your details have been successfully submitted"); Logger.Information("Form values saved from IpAddress="+HttpContext.Current.Request.UserHostAddress+" DentalOfficeID="+DentalOfficeID); } } catch(Exception ex) { Logger.LogError("IpAddress="+HttpContext.Current.Request.UserHostAddress+" DentalOfficeID="+DentalOfficeID+" WebSheetDefID="+WebSheetDefID,ex); Panel1.Visible=false; DisplayMessage("There has been a problem submitting your details. <br /> We apologize for the inconvenience."); } }