public DataCreateModel CreateModel(NameValueCollection formValues, object files, Operation operation) { CultureInfo culture = CultureInfo.CreateSpecificCulture("da-DK"); char[] trim = new char[] { '\"' }; DataViewModel model = new DataViewModel(); foreach (string key in formValues.Keys) { if (formValues[key].ToLower() != "null") { switch (key) { case "FormId": int formid = 0; if (int.TryParse(formValues[key], out formid)) { DatabaseFormsEntities db = new DatabaseFormsEntities(); model.Form = db.Forms.SingleOrDefault(m => m.FormId == formid); } break; case "ViewId": int viewid = 0; if (int.TryParse(formValues[key], out viewid)) { RepositoryViews repository = new RepositoryViews(); model.View = repository.Get(viewid); } break; case "UniqueId": model.UniqueId = formValues[key]; break; case "UserId": model.UserId = formValues[key]; break; case "ItemId": int itemid = 0; if (int.TryParse(formValues[key], out itemid)) { model.ItemId = itemid; } break; case "Date": DateTime date = DateTime.Now; if (DateTime.TryParse(formValues[key], culture, DateTimeStyles.AssumeLocal, out date)) { model.Date = date; } break; } } } if (operation == Operation.Create) { model.Date = DateTime.Now; model.UniqueId = Guid.NewGuid().ToString(); /*if (User.Identity.IsAuthenticated) { model.UserName = User.Identity.Name; model.UserId = Membership.GetUser(User.Identity.Name).ProviderUserKey.ToString(); }*/ } if (!String.IsNullOrEmpty(model.UserName)) { UserProfile profile = UserProfile.GetUserProfile(model.UserName); RepositoryCompanies rc = new RepositoryCompanies(); Company company = rc.Get(profile.CompanyId); if (company != null) model.Company = company.Name; } List<DataEmailModel> emails = new List<DataEmailModel>(); if (!String.IsNullOrEmpty(model.Form.Email)) { if (operation == Operation.Create && !String.IsNullOrEmpty(model.Form.ViewEmailToReceiverOnCreate)) { emails.Add(new DataEmailModel { Email = model.Form.Email, View = model.Form.ViewEmailToReceiverOnCreate }); } else if (operation == Operation.Edit && !String.IsNullOrEmpty(model.Form.ViewEmailToReceiverOnEdit)) { emails.Add(new DataEmailModel { Email = model.Form.Email, View = model.Form.ViewEmailToReceiverOnEdit }); } } foreach (Field field in model.Form.Fields) { if (!string.IsNullOrEmpty(field.FieldColumn)) { #region 8 Upload if (field.FieldTypeId == 8) //Upload { bool fundet = false; if (files!=null && files is System.Collections.ObjectModel.Collection<MultipartFileData>) { foreach (MultipartFileData file in (System.Collections.ObjectModel.Collection<MultipartFileData>)files) { string id = file.Headers.ContentDisposition.Name.Trim(trim); int id2 = 0; if (int.TryParse(id, out id2)) { if (field.FieldId == id2) { string filename = file.Headers.ContentDisposition.FileName.Trim(trim); if (!string.IsNullOrEmpty(filename)) { fundet = true; string name = model.UniqueId + "-" + field.FieldId.ToString() + Path.GetExtension(filename).ToLower(); string filePath = Path.Combine(model.Form.UploadPhysicalPath, name); field.Data = name; int width = Properties.Settings.Default.MaxWidth; int height = Properties.Settings.Default.MaxHeight; System.Drawing.Image FullsizeImage = System.Drawing.Image.FromFile(file.LocalFileName); FullsizeImage.Save(filePath); FullsizeImage.RotateFlip(System.Drawing.RotateFlipType.Rotate180FlipNone); FullsizeImage.RotateFlip(System.Drawing.RotateFlipType.Rotate180FlipNone); if (FullsizeImage.Width <= width) { width = FullsizeImage.Width; } int NewHeight = FullsizeImage.Height * width / FullsizeImage.Width; if (NewHeight > height) { // Resize with height instead width = FullsizeImage.Width * height / FullsizeImage.Height; NewHeight = height; } System.Drawing.Image NewImage = FullsizeImage.GetThumbnailImage(width, NewHeight, null, IntPtr.Zero); // Clear handle to original file so that we can overwrite it if necessary FullsizeImage.Dispose(); string newName = "Thumb_" + Path.GetFileName(name); string newFile = Path.Combine(model.Form.UploadPhysicalPath, newName); // Save resized picture NewImage.Save(newFile); NewImage.Dispose(); File.Delete(file.LocalFileName); } } } else { File.Delete(file.LocalFileName); } } } else if (files !=null && files is System.Web.HttpFileCollectionWrapper) { HttpFileCollectionWrapper files2 = ((System.Web.HttpFileCollectionWrapper)files); if (files2.AllKeys.Contains(field.FieldId.ToString())) { HttpPostedFileBase file = files2[field.FieldId.ToString()]; string filename = file.FileName; if (!string.IsNullOrEmpty(filename)) { fundet = true; string name = model.UniqueId + "-" + field.FieldId.ToString() + Path.GetExtension(filename).ToLower(); string filePath = Path.Combine(model.Form.UploadPhysicalPath, name); field.Data = name; int width = Properties.Settings.Default.MaxWidth; int height = Properties.Settings.Default.MaxHeight; file.SaveAs(filePath); System.Drawing.Image FullsizeImage = System.Drawing.Image.FromFile(filePath); FullsizeImage.RotateFlip(System.Drawing.RotateFlipType.Rotate180FlipNone); FullsizeImage.RotateFlip(System.Drawing.RotateFlipType.Rotate180FlipNone); if (FullsizeImage.Width <= width) { width = FullsizeImage.Width; } int NewHeight = FullsizeImage.Height * width / FullsizeImage.Width; if (NewHeight > height) { // Resize with height instead width = FullsizeImage.Width * height / FullsizeImage.Height; NewHeight = height; } System.Drawing.Image NewImage = FullsizeImage.GetThumbnailImage(width, NewHeight, null, IntPtr.Zero); // Clear handle to original file so that we can overwrite it if necessary FullsizeImage.Dispose(); string newName = "Thumb_" + Path.GetFileName(name); string newFile = Path.Combine(model.Form.UploadPhysicalPath, newName); // Save resized picture NewImage.Save(newFile); NewImage.Dispose(); } } } if (!fundet && !string.IsNullOrEmpty(formValues[field.FieldId.ToString()])) { string[] info = formValues[field.FieldId.ToString()].Split(new char[] { ';' }); int index = info[1].IndexOf(","); string name = model.UniqueId + "-" + field.FieldId.ToString() + info[0].Replace("data:image/", "."); field.Data = name; if (info[1].Length > (index + 1)) { string image = info[1].Substring(index + 1); string filePath = Path.Combine(model.Form.UploadPhysicalPath, name); using (var fs = new FileStream(filePath, FileMode.Create)) { byte[] byteFromString; byteFromString = Convert.FromBase64String(image); fs.Write(byteFromString, 0, byteFromString.Length); } try { int width = Properties.Settings.Default.MaxWidth; int height = Properties.Settings.Default.MaxHeight; System.Drawing.Image FullsizeImage = System.Drawing.Image.FromFile(filePath); // Prevent using images internal thumbnail FullsizeImage.RotateFlip(System.Drawing.RotateFlipType.Rotate180FlipNone); FullsizeImage.RotateFlip(System.Drawing.RotateFlipType.Rotate180FlipNone); if (FullsizeImage.Width <= width) { width = FullsizeImage.Width; } int NewHeight = FullsizeImage.Height * width / FullsizeImage.Width; if (NewHeight > height) { // Resize with height instead width = FullsizeImage.Width * height / FullsizeImage.Height; NewHeight = height; } System.Drawing.Image NewImage = FullsizeImage.GetThumbnailImage(width, NewHeight, null, IntPtr.Zero); // Clear handle to original file so that we can overwrite it if necessary FullsizeImage.Dispose(); string newName = "Thumb_" + Path.GetFileName(name); string newFile = Path.Combine(model.Form.UploadPhysicalPath, newName); // Save resized picture NewImage.Save(newFile); NewImage.Dispose(); } catch { } } } } #endregion else if (field.FieldTypeId == 16) //Upload { field.Data = formValues["Geometri"]; } else if (field.FieldTypeId == 17) //Upload { field.Data = formValues["Position"]; } else if (field.FieldTypeId == 18) //Upload { field.Data = formValues["Accuracy"]; } else { string value = formValues[field.FieldId.ToString()]; field.Data = value; switch (field.FieldTypeId) { case 7: if (email.IsMatch(field.Data)) { string emailView = ""; Field operationField = null; if (operation == Operation.Create) { emailView = field.Form.ViewEmailToSenderOnCreate; operationField = field.Form.Fields.FirstOrDefault(m => m.FieldTypeId == 12); } else if (operation == Operation.Edit) { emailView = field.Form.ViewEmailToSenderOnEdit; operationField = field.Form.Fields.FirstOrDefault(m => m.FieldTypeId == 13); } if (!String.IsNullOrEmpty(emailView) && operationField != null) { string send = formValues[operationField.FieldId.ToString()]; if (!String.IsNullOrEmpty(send)) { if (send != "false" && send != "off") emails.Add(new DataEmailModel { Email = field.Data, View = emailView }); } } } break; /*case 10: DateTime dt; if (!DateTime.TryParse(field.Data, culture, DateTimeStyles.AssumeLocal, out dt)) { ModelState.AddModelError(field.FieldId.ToString(), field.Data + " er ikke en gyldig dato"); } break;*/ } Selection selection = field.Selections.SingleOrDefault(m => m.Name == field.Data); if (selection != null) { if (!String.IsNullOrEmpty(selection.Email)) { if (operation == Operation.Create && !String.IsNullOrEmpty(model.Form.ViewEmailToReceiverOnCreate)) { emails.Add(new DataEmailModel { Email = selection.Email, View = model.Form.ViewEmailToReceiverOnCreate }); } else if (operation == Operation.Edit && !String.IsNullOrEmpty(model.Form.ViewEmailToReceiverOnEdit)) { emails.Add(new DataEmailModel { Email = selection.Email, View = model.Form.ViewEmailToReceiverOnEdit }); } } } } } } return new DataCreateModel() { Emails = emails, Model = model, }; }
private DataCreateModel CreateModel(DataViewModel postModel, FormCollection formValues, Operation operation) { CultureInfo culture = CultureInfo.CreateSpecificCulture("da-DK"); RepositoryViews repository = new RepositoryViews(); Models.View view = repository.Get(postModel.View.ViewId); DataViewModel model = new DataViewModel { View = view, Form = view.Group.Forms.Single(m => m.FormId == postModel.Form.FormId), Date = postModel.Date, UniqueId = postModel.UniqueId, ItemId = postModel.ItemId, UserName = postModel.UserName, UserId = postModel.UserId, }; if (operation == Operation.Create) { model.Date = DateTime.Now; model.UniqueId = Guid.NewGuid().ToString(); if (User.Identity.IsAuthenticated) { model.UserName = User.Identity.Name; model.UserId = Membership.GetUser(User.Identity.Name).ProviderUserKey.ToString(); } } if (!String.IsNullOrEmpty(model.UserName)) { UserProfile profile = UserProfile.GetUserProfile(model.UserName); RepositoryCompanies rc = new RepositoryCompanies(); Company company = rc.Get(profile.CompanyId); if (company != null) model.Company = company.Name; } List<DataEmailModel> emails = new List<DataEmailModel>(); if (!String.IsNullOrEmpty(model.Form.Email)) { if (operation == Operation.Create && !String.IsNullOrEmpty(model.Form.ViewEmailToReceiverOnCreate)) { emails.Add(new DataEmailModel { Email = model.Form.Email, View = model.Form.ViewEmailToReceiverOnCreate }); } else if (operation == Operation.Edit && !String.IsNullOrEmpty(model.Form.ViewEmailToReceiverOnEdit)) { emails.Add(new DataEmailModel { Email = model.Form.Email, View = model.Form.ViewEmailToReceiverOnEdit }); } } foreach (Field field in model.Form.Fields) { #region 8 Upload if (field.FieldTypeId == 8) //Upload { string value = formValues[field.FieldId.ToString()]; if (!String.IsNullOrEmpty(value)) { field.Data = value; } if (Request.Files.AllKeys.Contains(field.FieldId.ToString())) { HttpPostedFileBase file = Request.Files[field.FieldId.ToString()]; if (file.ContentLength > 0) { string name = model.UniqueId + "-" + field.FieldId.ToString() + Path.GetExtension(file.FileName); string filePath = Path.Combine(model.Form.UploadPhysicalPath, name); file.SaveAs(filePath); field.Data = name; try { int width = Properties.Settings.Default.MaxWidth; int height = Properties.Settings.Default.MaxHeight; System.Drawing.Image FullsizeImage = System.Drawing.Image.FromFile(filePath); // Prevent using images internal thumbnail FullsizeImage.RotateFlip(System.Drawing.RotateFlipType.Rotate180FlipNone); FullsizeImage.RotateFlip(System.Drawing.RotateFlipType.Rotate180FlipNone); if (FullsizeImage.Width <= width) { width = FullsizeImage.Width; } int NewHeight = FullsizeImage.Height * width / FullsizeImage.Width; if (NewHeight > height) { // Resize with height instead width = FullsizeImage.Width * height / FullsizeImage.Height; NewHeight = height; } System.Drawing.Image NewImage = FullsizeImage.GetThumbnailImage(width, NewHeight, null, IntPtr.Zero); // Clear handle to original file so that we can overwrite it if necessary FullsizeImage.Dispose(); string newName = "Thumb_" + Path.GetFileName(name); string newFile = Path.Combine(model.Form.UploadPhysicalPath, newName); // Save resized picture NewImage.Save(newFile); NewImage.Dispose(); } catch { } } else if (field.Required) { ModelState.AddModelError(field.FieldId.ToString(), field.Name + " er påkrævet"); } } } #endregion else if (field.FieldTypeId == 16) //Geometry { string value = formValues["Geometri"]; if (String.IsNullOrEmpty(value)) { if (field.Required) { string error = field.Name + " er påkrævet"; ModelState.AddModelError("Geometri", error); } } else { field.Data = value; } } else if (field.FieldTypeId == 17) //Position { string value = formValues["Position"]; if (String.IsNullOrEmpty(value)) { if (field.Required) { string error = field.Name + " er påkrævet"; ModelState.AddModelError("Position", error); } } else { field.Data = value; } } else if (field.FieldTypeId == 18) //Accuracy { string value = formValues["Accuracy"]; if (String.IsNullOrEmpty(value)) { if (field.Required) { string error = field.Name + " er påkrævet"; ModelState.AddModelError("Accuracy", error); } } else { field.Data = value; } } else { string value = formValues[field.FieldId.ToString()]; if (String.IsNullOrEmpty(value)) { if (field.Required) { string error = field.Name + " er påkrævet"; ModelState.AddModelError(field.FieldId.ToString(), error); } } else { field.Data = value; switch (field.FieldTypeId) { case 7: if (email.IsMatch(field.Data)) { string emailView = ""; Field operationField = null; if (operation == Operation.Create) { emailView = field.Form.ViewEmailToSenderOnCreate; operationField = field.Form.Fields.FirstOrDefault(m => m.FieldTypeId == 12); } else if (operation == Operation.Edit) { emailView = field.Form.ViewEmailToSenderOnEdit; operationField = field.Form.Fields.FirstOrDefault(m => m.FieldTypeId == 13); } if (!String.IsNullOrEmpty(emailView) && operationField != null) { string send = formValues[operationField.FieldId.ToString()]; if (!String.IsNullOrEmpty(send)) { if (send != "false") emails.Add(new DataEmailModel { Email = field.Data, View = emailView }); } } } else { ModelState.AddModelError(field.FieldId.ToString(), field.Data + " er ikke en gyldig email"); } break; case 10: DateTime dt; if (!DateTime.TryParse(field.Data, culture, DateTimeStyles.AssumeLocal, out dt)) { ModelState.AddModelError(field.FieldId.ToString(), field.Data + " er ikke en gyldig dato"); } break; } Selection selection = field.Selections.SingleOrDefault(m => m.Name == field.Data); if (selection != null) { if (!String.IsNullOrEmpty(selection.Email)) { if (operation == Operation.Create && !String.IsNullOrEmpty(model.Form.ViewEmailToReceiverOnCreate)) { emails.Add(new DataEmailModel { Email = selection.Email, View = model.Form.ViewEmailToReceiverOnCreate }); } else if (operation == Operation.Edit && !String.IsNullOrEmpty(model.Form.ViewEmailToReceiverOnEdit)) { emails.Add(new DataEmailModel { Email = selection.Email, View = model.Form.ViewEmailToReceiverOnEdit }); } } } } } } return new DataCreateModel() { Emails = emails, Model = model, }; }
public ActionResult Index(int id, int? itemId, int? formId, string column, bool? ascending) { RepositoryViews repositoryViews = new RepositoryViews(); Models.View view = repositoryViews.Get(id); if (formId.HasValue) view.Group.DefaultFormId = formId.Value; if (itemId.HasValue) { //2 = Edit //3 = Delete //4 = Details if (view.ViewTypeId == 2 || view.ViewTypeId == 3 || view.ViewTypeId == 4) { RepositoryMapguide mapguide = new RepositoryMapguide(); DataViewModel model = new DataViewModel() { ItemId = itemId.Value, View = view, Form = view.Group.Forms.Single(m => m.FormId == view.Group.DefaultFormId) }; model = mapguide.Get(model); return View(view.Name, model); } } else { //1 = Create if (view.ViewTypeId == 1) { DataViewModel model = new DataViewModel { View = view, Form = view.Group.Forms.SingleOrDefault(m => m.FormId == view.Group.DefaultFormId), Date = DateTime.Now, UniqueId = Guid.NewGuid().ToString() }; if (User.Identity.IsAuthenticated) { model.UserName = User.Identity.Name; model.UserId = Membership.GetUser(User.Identity.Name).ProviderUserKey.ToString(); UserProfile profile = UserProfile.GetUserProfile(User.Identity.Name); RepositoryCompanies rc = new RepositoryCompanies(); Company company = rc.Get(profile.CompanyId); if (company != null) model.Company = company.Name; } return View(view.Name, model); } //5 = List All else if (view.ViewTypeId == 5) { RepositoryMapguide mapguide = new RepositoryMapguide(); DataListModel model = mapguide.GetList(view, ""); return View(view.Name, model); } //6 = List My else if (view.ViewTypeId == 6) { RepositoryMapguide mapguide = new RepositoryMapguide(); DataListModel model = null; if (User.Identity.IsAuthenticated) { model = mapguide.GetList(view, Membership.GetUser(User.Identity.Name).ProviderUserKey.ToString()); } else { model = mapguide.GetList(view, ""); } return View(view.Name, model); } } return View("Error"); }
public DataListModel GetList(Models.View view, List<DataSelectionModel> dataSelections) { Form form = view.Group.Forms.Single(m => m.FormId == view.Group.DefaultFormId); List<Field> columns = new List<Field>(); foreach (Field field in form.Fields.Where(m => m.FieldColumn != null && !m.FieldColumn.Equals(String.Empty)).OrderBy(a => a.FieldOrder)) { Permission permission = view.Permissions.FirstOrDefault(m => m.FieldId == field.FieldId); if (permission == null) { columns.Add(field); } else { if (permission.PermissionTypeId != 0) { columns.Add(field); } } } DataListModel model = new DataListModel { View = view, Form = form, Columns = columns }; RepositoryCompanies repositoryCompanies = new RepositoryCompanies(); DataSelectionModel layer = null; foreach (DataSelectionModel selection in dataSelections) { if (selection.name == form.Name) { layer = selection; break; } } if (layer != null) { foreach (List<string> row in layer.aElements) { DataListItemModel listItem = new DataListItemModel(); for (int i = 0; i < layer.nProperties; i++) { if (!String.IsNullOrEmpty(row[i])) { string upperPropertyName = layer.aPropertiesName[i].ToUpper(); switch (upperPropertyName) { case "ID": int id = 0; int.TryParse(row[i], out id); listItem.ItemId = id; break; case "UNIQUEID": listItem.UniqueId = row[i]; break; case "USERID": listItem.UserId = row[i]; MembershipUser user = Membership.GetUser(new Guid(listItem.UserId)); if (user != null) { listItem.UserName = user.UserName; UserProfile profile = UserProfile.GetUserProfile(user.UserName); Company company = repositoryCompanies.Get(profile.CompanyId); if (company != null) listItem.Company = company.Name; } break; case "DATO": DateTime dt = DateTime.Now; DateTime.TryParse(row[i], culture, DateTimeStyles.AssumeLocal, out dt); listItem.Date = dt; break; default: foreach (Field field in model.Columns) { if (layer.aPropertiesName[i].ToUpper() == field.FieldColumn.ToUpper()) { if (field.FieldTypeId == 10) { DateTime dt1 = DateTime.Now; DateTime.TryParse(row[i], culture, DateTimeStyles.AssumeLocal, out dt1); listItem.Data.Add(field.FieldColumn, dt1.ToString("d", culture)); } else { listItem.Data.Add(field.FieldColumn, row[i]); } break; } } break; } } } model.ListItemModels.Add(listItem); } } return model; }
public DataViewModel Get(DataViewModel m) { RepositoryCompanies repositoryCompanies = new RepositoryCompanies(); NumberFormatInfo nfi = new NumberFormatInfo(); nfi.NumberDecimalSeparator = "."; nfi.NumberGroupSeparator = ","; Form form = m.Form; View view = m.View; List<Field> columns = new List<Field>(); Dictionary<string, UserInfo> users = new Dictionary<string, UserInfo>(); string select = ""; bool fId = false; bool fUserId = false; bool fUniqueId = false; bool fDato = false; foreach (Field field in form.Fields.Where(a => a.FieldColumn != null && !a.FieldColumn.Equals(String.Empty)).OrderBy(b => b.FieldOrder)) { Permission permission = view.Permissions.FirstOrDefault(a => a.FieldId == field.FieldId); //if (permission == null )//|| permission.PermissionTypeId != 0) //{ columns.Add(field); switch(field.FieldColumn.ToUpper()) { case "ID": select = select + "," + field.FieldColumn; fId = true; break; case "UNIQUEID": select = select + "," + field.FieldColumn; fUniqueId = true; break; case "USERID": select = select + "," + field.FieldColumn; fUserId = true; break; case "DATO": select = select + "," + field.FieldColumn; fDato = true; break; default: if (field.FieldTypeId == 16 || field.FieldTypeId == 17) { select = select + "," + field.FieldColumn+".STAsText() AS " + field.FieldColumn; } else { select = select + "," + field.FieldColumn; } break; } //} } if(!fUniqueId) select = select + ",uniqueid"; if (!fUserId) select = select + ",userid"; if (!fDato) select = select + ",dato"; if (!fId) select = select + ",id"; select = "SELECT " + select.Substring(1); DataTable dt = new DataTable(); using (SqlConnection connection = new SqlConnection(m.Form.ResourceName)) { SqlCommand command = connection.CreateCommand(); command.CommandText = select +" FROM "+ m.Form.ClassName + " WHERE Id="+m.ItemId.ToString(); SqlDataAdapter adapter = new SqlDataAdapter(command); adapter.Fill(dt); } DataViewModel model = new DataViewModel { View = m.View, Form = m.Form, }; foreach (DataRow row in dt.Rows) { for (int i = 0; i < dt.Columns.Count; i++) { if (!row.IsNull(i)) { string propertyName = dt.Columns[i].ColumnName; string propertyNameUpper = propertyName.ToUpper(); switch (propertyNameUpper) { case "ID": model.ItemId = (int)row[i]; foreach (Field field in model.Form.Fields) { if (!string.IsNullOrEmpty(field.FieldColumn)) { if (field.FieldColumn.ToUpper() == propertyNameUpper) { field.Data = row[i].ToString(); } } } break; case "UNIQUEID": model.UniqueId = (string)row[i]; break; case "USERID": if (row[i] != DBNull.Value && row[i].ToString() != "") { model.UserId = (string)row[i]; UserInfo user = null; if (users.ContainsKey(model.UserId)) user = users[model.UserId]; else { MembershipUser user1 = Membership.GetUser(new Guid(model.UserId)); if (user1 != null) { user = new UserInfo(); user.UserName = user1.UserName; UserProfile profile = UserProfile.GetUserProfile(user1.UserName); if (profile != null) { Company company = repositoryCompanies.Get(profile.CompanyId); if (company != null) { user.CompanyName = company.Name; } } } users.Add(model.UserId, user); } if (user != null) { model.UserName = user.UserName; model.Company = user.CompanyName; } } break; case "DATO": model.Date = (DateTime)row[i]; break; default: foreach (Field field in model.Form.Fields) { if (!string.IsNullOrEmpty(field.FieldColumn)) { if (field.FieldColumn.ToUpper() == propertyNameUpper) { if (field.FieldTypeId == 10) { DateTime dt1 = (DateTime)row[i]; field.Data = dt1.ToString("dd-MM-yyy"); } else { field.Data = row[i].ToString(); } } } } break; } } } } return model; }
public DataListModel GetList(View view, string userId) { RepositoryCompanies repositoryCompanies = new RepositoryCompanies(); List<Field> columns = new List<Field>(); Form form = view.Group.Forms.Single(m => m.FormId == view.Group.DefaultFormId); string select = ""; bool fId = false; bool fUserId = false; bool fUniqueId = false; bool fDato = false; foreach (Field field in form.Fields.Where(a => a.FieldColumn != null && !a.FieldColumn.Equals(String.Empty)).OrderBy(b => b.FieldOrder)) { Permission permission = view.Permissions.FirstOrDefault(a => a.FieldId == field.FieldId); if (permission == null || permission.PermissionTypeId != 0) { columns.Add(field); switch (field.FieldColumn.ToUpper()) { case "ID": select = select + "," + field.FieldColumn; fId = true; break; case "UNIQUEID": select = select + "," + field.FieldColumn; fUniqueId = true; break; case "USERID": select = select + "," + field.FieldColumn; fUserId = true; break; case "DATO": select = select + "," + field.FieldColumn; fDato = true; break; default: if (field.FieldTypeId == 16) { select = select + "," + field.FieldColumn + ".STAsText() AS " + field.FieldColumn; } else { select = select + "," + field.FieldColumn; } break; } } } if (!fUniqueId) select = select + ",UniqueId"; if (!fUserId) select = select + ",UserId"; if (!fDato) select = select + ",Dato"; if (!fId) select = select + ",Id"; select = "SELECT " + select.Substring(1); DataListModel model = new DataListModel { View = view, Form = form, Columns = columns }; DataTable dt = new DataTable(); using (SqlConnection connection = new SqlConnection(form.ResourceName)) { SqlCommand command = connection.CreateCommand(); command.CommandText = select+" FROM " + form.ClassName; if (!String.IsNullOrEmpty(userId)) { command.CommandText = command.CommandText + " WHERE UserId = '" + userId + "'"; } command.CommandText += " order by dato desc"; SqlDataAdapter adapter = new SqlDataAdapter(command); adapter.Fill(dt); } Dictionary<string, UserInfo> users = new Dictionary<string, UserInfo>(); foreach (DataRow row in dt.Rows) { DataListItemModel listItem = new DataListItemModel(); for (int i = 0; i < dt.Columns.Count; i++) { if (!row.IsNull(i)) { string propertyName = dt.Columns[i].ColumnName; string propertyNameUpper = propertyName.ToUpper(); switch (propertyNameUpper) { case "ID": listItem.ItemId = (int)row[i]; if(fId) listItem.Data.Add(propertyName, row[i].ToString()); break; case "UNIQUEID": listItem.UniqueId = (string)row[i]; if (fUniqueId) listItem.Data.Add(propertyName, row[i].ToString()); break; case "USERID": if (row[i] != DBNull.Value && row[i].ToString() != "") { listItem.UserId = (string)row[i]; if (fUserId) listItem.Data.Add(propertyName, row[i].ToString()); UserInfo user = null; if (users.ContainsKey(listItem.UserId)) user = users[listItem.UserId]; else { MembershipUser user1 = Membership.GetUser(new Guid(listItem.UserId)); if (user1 != null) { user = new UserInfo(); user.UserName = user1.UserName; UserProfile profile = UserProfile.GetUserProfile(user1.UserName); if (profile != null) { Company company = repositoryCompanies.Get(profile.CompanyId); if (company != null) { user.CompanyName = company.Name; } } } users.Add(listItem.UserId, user); } if (user != null) { listItem.UserName = user.UserName; listItem.Company = user.CompanyName; } } break; case "DATO": listItem.Date = (DateTime)row[i]; if (fDato) listItem.Data.Add(propertyName, row[i].ToString()); break; default: listItem.Data.Add(propertyName, row[i].ToString()); break; } } } model.ListItemModels.Add(listItem); } return model; }