public override void SaveRecord(Model.SavingParemeter Paras) { DAL.tblCompany SaveModel = null; DAL.tblPayrollMonth PayRollMonth = null; if (Paras.SavingInterface == SavingParemeter.eSavingInterface.AddNew || EditRecordDataSource == null) { SaveModel = new tblCompany(); } else { SaveModel = DALObject.FindSaveModelByPrimeKey(((CompanyEditListModel)EditRecordDataSource).CompanyID); PayRollMonth = PayrollMonthDAL.GetLatestPayrollMonthByCompanyID(((CompanyEditListModel)EditRecordDataSource).CompanyID); //DO SOMETHING HERE FOR PAYROLLMONTH if (SaveModel == null) { Paras.SavingResult = new SavingResult(); Paras.SavingResult.ExecutionResult = eExecutionResult.ValidationError; Paras.SavingResult.ValidationError = "Can not edit. Selected record not found, it may be deleted by another user."; return; } } // on Creating new company or while editing there is no month exists. if (PayRollMonth == null) { PayRollMonth = new tblPayrollMonth() { tblCompany = SaveModel }; } SaveModel.CompanyCode = Model.CommonFunctions.ParseInt(txtCode.Text) + 1; SaveModel.CompanyName = txtCompanyName.Text; if (Paras.SavingInterface == SavingParemeter.eSavingInterface.AddNew) { SaveModel.BusinessStartedFrom = (DateTime)deBusinessStartedFrom.EditValue; } SaveModel.CurrencyID = (int)lookupCurrency.EditValue; //SaveModel.CompanyLogoFileName = CompanyLogoSelectedFileName; SaveModel.Address1 = txtAddressLine1.Text; SaveModel.Address2 = txtAddressLine2.Text; SaveModel.Address3 = txtAddressLine3.Text; SaveModel.CityID = (int)lookupCity.EditValue; SaveModel.PIN = txtPin.Text; SaveModel.Phone1 = txtPhone1.Text; SaveModel.Phone2 = txtPhoneNo2.Text; SaveModel.MobileNo1 = txtMobileNo1.Text; SaveModel.MobileNo2 = txtMobileNo2.Text; SaveModel.EMailID = txtEMailID.Text; SaveModel.Website = txtWebsite.Text; SaveModel.IncorporationNo = txtIncorporationNo.Text; SaveModel.IncorporationDate = deIncorporationDate.DateTime; SaveModel.PINNo_RegNo = txtPINNo.Text; SaveModel.NSSFNo = txtNSSFNo.Text; SaveModel.NHIFNo = txtNHIFNo.Text; SaveModel.PFNo = txtPFNo.Text; SaveModel.SaccoRegNo = txtSACCORegNo.Text; SaveModel.Bank1_AccountNo = txtBank1_AcNo.Text; SaveModel.Bank1_Name = txtBank1_Name.Text; SaveModel.Bank1_BranchName = txtBank1_BranchName.Text; SaveModel.Bank1_Currency = txtBank1_Currency.Text; SaveModel.Bank2_AccountNo = txtBank2_AcNo.Text; SaveModel.Bank2_Name = txtBank2_Name.Text; SaveModel.Bank2_BranchName = txtBank2_BranchName.Text; SaveModel.Bank2_Currency = txtBank2_Currency.Text; SaveModel.Bank3_AccountNo = txtBank3_AcNo.Text; SaveModel.Bank3_Name = txtBank3_Name.Text; SaveModel.Bank3_BranchName = txtBank3_BranchName.Text; SaveModel.Bank3_Currency = txtBank3_Currency.Text; PayRollMonth.PayrollMonthStartDate = payRollStartDate.DateTime; PayRollMonth.PayrollMonthEndDate = payRollEndDate.DateTime; PayRollMonth.PayrollMonthName = payRollEndDate.DateTime.ToString("MMMM-yyyy"); //this is not user selectable PayRollMonth.PayrollMonth = payRollEndDate.DateTime.Date; long?CopySettingsFromCompanyID = null; //if(lcgSettings.Visibility != DevExpress.XtraLayout.Utils.LayoutVisibility.Never) //{ // CopySettingsFromCompanyID = (long?)lookupCopySettingFromCompany.EditValue; //} /// In Editing if logo image is cleared if (SaveModel.CompanyLogoFileName != null && CompanyLogoSelectedFileName == null) { try { File.Delete(SaveModel.CompanyLogoFileName); } catch (Exception) { } SaveModel.CompanyLogoFileName = null; } Paras.SavingResult = DALObject.SaveNewRecord(SaveModel, CopySettingsFromCompanyID, PayRollMonth); /// CompanyLogoSelectedFileName != null -- it means user has changed logo image if (CompanyLogoSelectedFileName != null && Paras.SavingResult.ExecutionResult == eExecutionResult.CommitedSucessfuly && SaveModel.CompanyLogoFileName != CompanyLogoSelectedFileName) { string LogoImageCopiedFileName = null; // to seperate both process file copy and saving file name in db, so that if exception occures than we can get in which part the exception occured bool IsFileCopied = false; // Copieng Image File if (System.IO.File.Exists(CompanyLogoSelectedFileName)) { string ImageDirectory = null; if (CommonProperties.LoginInfo.SoftwareSettings.DocumentLocation_EmployeeImage != null) { ImageDirectory = CommonProperties.LoginInfo.SoftwareSettings.DocumentLocation_EmployeeImage + @"\Logo\"; } else { ImageDirectory = @"\..\IMAGES\Logo\"; System.IO.Directory.CreateDirectory(ImageDirectory); } if (!Directory.Exists(ImageDirectory)) { Directory.CreateDirectory(ImageDirectory); } LogoImageCopiedFileName = ImageDirectory + "" + ((int)Paras.SavingResult.PrimeKeyValue).ToString() + System.IO.Path.GetExtension(CompanyLogoSelectedFileName); IsFileCopied = false; try { if (File.Exists(LogoImageCopiedFileName)) { File.Delete(LogoImageCopiedFileName); } File.Copy(CompanyLogoSelectedFileName, LogoImageCopiedFileName); IsFileCopied = true; } catch (Exception ex) { ex = DAL.CommonFunctions.GetFinalError(ex); Paras.SavingResult.MessageAfterSave = "Error while trying to copy log image file. Please check following error \r\n" + ex.Message; } // if file successfully copied only then save file name if (IsFileCopied) { SavingResult res = DALObject.SaveLogoFileName((int)Paras.SavingResult.PrimeKeyValue, LogoImageCopiedFileName); if (res.ExecutionResult != eExecutionResult.CommitedSucessfuly && res.ExecutionResult != eExecutionResult.NotExecutedYet) { if (res.ExecutionResult == eExecutionResult.ErrorWhileExecuting) { Paras.SavingResult.MessageAfterSave = "Error while saving logo image file name.\r\n" + (res.Exception != null ? res.Exception.Message : ""); } else if (res.ExecutionResult == eExecutionResult.ValidationError) { Paras.SavingResult.MessageAfterSave = "Error while saving logo image file name \r\n" + res.ValidationError; } } } } } base.SaveRecord(Paras); }