private User GetUserFromSpreadSheet(int row, ExcelWorksheet sheet) { User user = new User(); user.FirstName = (string)sheet.Cells[COLUMN_FIRSTNAME + Convert.ToString(row)].Value; user.LastName = (string)sheet.Cells[COLUMN_LASTNAME + Convert.ToString(row)].Value; user.Sex = (string)sheet.Cells[COLUMN_SEX + Convert.ToString(row)].Value; user.Level = Convertors.GetMembershipLevel((string)sheet.Cells[COLUMN_LEVEL + Convert.ToString(row)].Value); user.Language = (string)sheet.Cells[COLUMN_LANGUAGE + Convert.ToString(row)].Value; user.Email = (string)sheet.Cells[COLUMN_EMAIL + Convert.ToString(row)].Value; if (sheet.Cells[COLUMN_PHONE + Convert.ToString(row)].Value != null) { string val; try { val = (string)sheet.Cells[COLUMN_PHONE + Convert.ToString(row)].Value; } catch (InvalidCastException) { try { val = Convert.ToString((string)sheet.Cells[COLUMN_PHONE + Convert.ToString(row)].Value); } catch (Exception) { val = ""; } } user.PhoneNumber = val; } bool isResponsible = false; if (sheet.Cells[COLUMN_RESPONSIBLE + Convert.ToString(row)].Value == null) { isResponsible = false; } else { string strValue = sheet.Cells[COLUMN_RESPONSIBLE + Convert.ToString(row)].Value.ToString().ToLowerInvariant(); isResponsible = strValue.Equals("oui") ? true : false; } user.IsGroupResponsible = isResponsible; user.Town = (string)sheet.Cells[COLUMN_TOWN + Convert.ToString(row)].Value; // read zone if it is not availlable create it, Zone zone = new Zone(); zone.Label = (string)sheet.Cells[COLUMN_ZONE + Convert.ToString(row)].Value; zone.Id = Zone.GetIdRefectoryIdByName(DBcontext, zone.Label); zone.Id = zone.Persist(); user.ZoneId = zone.Id; SousZone sousZone = new SousZone(); sousZone.Label = (string)sheet.Cells[COLUMN_SOUS_ZONE + Convert.ToString(row)].Value; sousZone.ZoneId = zone.Id; sousZone.Id = sousZone.Persist(); user.SousZoneId = sousZone.Id; Group group = new Group(); group.ZoneId = zone.Id; group.SousZoneId = sousZone.Id; group.Label = (string)sheet.Cells[COLUMN_GROUP + Convert.ToString(row)].Value; group.Id = group.Persist(); user.GroupId = group.Id; user.persist(); return(user); }